XTLS-Reality steal from yourself

This commit is contained in:
mercury
2024-03-20 22:36:06 +04:00
parent e81c6a5dfb
commit 9f1b3d84f4
7 changed files with 178 additions and 19 deletions
+19 -2
View File
@@ -336,6 +336,9 @@ class Bot
case preg_match('~^/changeFakeDomain$~', $this->input['callback'], $m):
$this->changeFakeDomain();
break;
case preg_match('~^/selfFakeDomain$~', $this->input['callback'], $m):
$this->selfFakeDomain();
break;
case preg_match('~^/changeTGDomain$~', $this->input['callback'], $m):
$this->changeTGDomain();
break;
@@ -3389,6 +3392,10 @@ DNS-over-HTTPS with IP:
'text' => $this->i18n('changeFakeDomain'),
'callback_data' => "/changeFakeDomain",
],
[
'text' => $this->i18n('selfFakeDomain'),
'callback_data' => "/selfFakeDomain",
],
];
if ($c['inbounds'][0]['settings']['clients'][0]['id']) {
$data[] = [
@@ -3912,16 +3919,26 @@ DNS-over-HTTPS with IP:
];
}
public function setFakeDomain($domain)
public function setFakeDomain($domain, $self = false)
{
$c = $this->getXray();
$c['inbounds'][0]['streamSettings']['realitySettings']['serverNames'][0] = $domain;
$c['inbounds'][0]['streamSettings']['realitySettings']['dest'] = "$domain:443";
$c['inbounds'][0]['streamSettings']['realitySettings']['dest'] = $self ? "10.10.1.2:443" : "$domain:443";
$this->restartXray($c);
$this->setUpstreamDomain($domain);
$this->xray();
}
public function selfFakeDomain()
{
$c = $this->getPacConf();
if (!empty($c['domain'])) {
$this->setFakeDomain($c['domain'], 1);
} else{
$this->answer($this->input['callback_id'], 'empty domain', true);
}
}
public function setBackup($text)
{
$text = trim($text);
+9 -5
View File
@@ -263,7 +263,11 @@ $i = [
],
'changeFakeDomain' => [
'en' => 'changeFakeDomain',
'ru' => 'установить фейковый домен',
'ru' => 'фейковый домен',
],
'selfFakeDomain' => [
'en' => 'selfFakeDomain',
'ru' => 'домен бота',
],
'page' => [
'en' => 'pagination',
@@ -310,11 +314,11 @@ $i = [
'ru' => 'сторонний браузер',
],
'browser_notify_on' => [
'en' => 'the web panel can now be opened in any browser',
'ru' => 'веб панель теперь может быть открыта в любом браузере',
'en' => 'the web panel can be opened in any browser',
'ru' => 'веб панель может быть открыта в любом браузере',
],
'browser_notify_off' => [
'en' => 'the web panel can no longer be opened in any browser',
'ru' => 'веб панель теперь не может быть открыта в любом браузере',
'en' => 'web panel is only available from telegram',
'ru' => 'веб панель доступна только из телеграмма',
],
];
+117
View File
@@ -0,0 +1,117 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login</title>
<style>
/* Design based on Blue Login Field of Kevin Sleger https://codepen.io/MurmeltierS/pen/macKb */
body {
background: #44c4e7 url("https://photos-6.dropbox.com/t/2/AAC_bdqR8LMkjEe-HPIf4K1DhtseMLRHPklBSzJSuzglvA/12/5714737/jpeg/1024x768/3/1418346000/0/2/bkg-blur.jpg/CLHm3AIgASgBKAI/b7RrveA2022yJyfO9RyRvv7LjJQESukGHssHUxVThzw") no-repeat center center fixed;
background-size: cover;
font-family: "Roboto";
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
&::before {
z-index: -1;
content: '';
position: fixed;
top: 0;
left: 0;
background: #44c4e7;
/* IE Fallback */
background: rgba(68, 196, 231, 0.8);
width: 100%;
height: 100%;
}
}
.form {
position: absolute;
top: 50%;
left: 50%;
background: #fff;
width: 285px;
margin: -140px 0 0 -182px;
padding: 40px;
box-shadow: 0 0 3px rgba(0, 0, 0, 0.3);
h2 {
margin: 0 0 20px;
line-height: 1;
color: #44c4e7;
font-size: 18px;
font-weight: 400;
}
input {
outline: none;
display: block;
width: 100%;
margin: 0 0 20px;
padding: 10px 15px;
border: 1px solid #ccc;
color: #ccc;
font-family: "Roboto";
box-sizing: border-box;
font-size: 14px;
font-wieght: 400;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
transition: 0.2s linear;
&input:focus {
color: #333;
border: 1px solid #44c4e7;
}
}
button {
cursor: pointer;
background: #44c4e7;
width: 100%;
padding: 10px 15px;
border: 0;
color: #fff;
font-family: "Roboto";
font-size: 14px;
font-weight: 400;
&:hover {
background: #369cb8;
}
}
}
.error,
.valid {
display: none;
}
</style>
<script src="jquery-3.7.1.min.js"></script>
</head>
<body>
<section class="form animated flipInX">
<h2>Login To Your Account</h2>
<p class="valid">Valid. Please wait a moment.</p>
<p class="error">Error. Please enter correct Username &amp; password.</p>
<form class="loginbox" autocomplete="off">
<input placeholder="Username" type="text" id="username"></input>
<input placeholder="Password" type="password" id="password"></input>
<button id="submit">Login</button>
</form>
</section>
<script>
$(document).ready(function() {
$('#submit').click(function () {
event.preventDefault(); // prevent PageReLoad
$('.error').css('display', 'block'); // show error msg
});
});
</script>
</body>
</html>
+11 -6
View File
@@ -22,15 +22,17 @@ http {
set_real_ip_from 10.10.0.10;
server {
listen 80 default_server;
listen 443 ssl http2 default_server proxy_protocol;
listen 10.10.0.2:80 default_server;
listen 10.10.0.2:443 ssl http2 default_server proxy_protocol;
ssl_certificate /certs/self_public;
ssl_certificate_key /certs/self_private;
access_log /logs/nginx_default_access;
location / {
return 444;
root /app;
index login.html;
try_files $uri $uri/ =404;
}
location /adguard/ {
access_log /logs/nginx_adguard_access;
@@ -73,11 +75,12 @@ http {
#-domain
# server {
# listen 80;
# listen 10.10.0.2:80;
# server_name ;
#-domain
#-ssl
# listen 443 ssl http2 proxy_protocol;
# listen 10.10.0.2:443 ssl http2 proxy_protocol;
# listen 10.10.1.2:443 ssl http2;
# ssl_certificate /certs/cert_public;
# ssl_certificate_key /certs/cert_private;
#-ssl
@@ -86,7 +89,9 @@ http {
# access_log /logs/nginx_domain_access;
# location / {
# return 444;
# root /app;
# index login.html;
# try_files $uri $uri/ =404;
# }
# location /adguard/ {
# access_log /logs/nginx_adguard_access;
+11 -6
View File
@@ -22,15 +22,17 @@ http {
set_real_ip_from 10.10.0.10;
server {
listen 80 default_server;
listen 443 ssl http2 default_server proxy_protocol;
listen 10.10.0.2:80 default_server;
listen 10.10.0.2:443 ssl http2 default_server proxy_protocol;
ssl_certificate /certs/self_public;
ssl_certificate_key /certs/self_private;
access_log /logs/nginx_default_access;
location / {
return 444;
root /app;
index login.html;
try_files $uri $uri/ =404;
}
location /adguard/ {
access_log /logs/nginx_adguard_access;
@@ -73,11 +75,12 @@ http {
#-domain
# server {
# listen 80;
# listen 10.10.0.2:80;
# server_name ;
#-domain
#-ssl
# listen 443 ssl http2 proxy_protocol;
# listen 10.10.0.2:443 ssl http2 proxy_protocol;
# listen 10.10.1.2:443 ssl http2;
# ssl_certificate /certs/cert_public;
# ssl_certificate_key /certs/cert_private;
#-ssl
@@ -86,7 +89,9 @@ http {
# access_log /logs/nginx_domain_access;
# location / {
# return 444;
# root /app;
# index login.html;
# try_files $uri $uri/ =404;
# }
# location /adguard/ {
# access_log /logs/nginx_adguard_access;
+9
View File
@@ -12,6 +12,10 @@ networks:
ipam:
config:
- subnet: 10.10.0.0/24
xray:
ipam:
config:
- subnet: 10.10.1.0/24
volumes:
adguard:
@@ -70,6 +74,7 @@ services:
- ./config/sshd_config:/etc/ssh/sshd_config
- ./logs/:/logs/
- ./app/webapp:/app
- ./app/login.html:/app/login.html
ports:
- 80:80
hostname: nginx
@@ -87,6 +92,8 @@ services:
networks:
default:
ipv4_address: 10.10.0.2
xray:
ipv4_address: 10.10.1.2
logging: *default-logging
php:
image: mercurykd/vpnbot-php:1.2
@@ -417,6 +424,8 @@ services:
networks:
default:
ipv4_address: 10.10.0.9
xray:
ipv4_address: 10.10.1.9
logging: *default-logging
oc:
image: mercurykd/vpnbot-oc:1.2
+2
View File
@@ -1,3 +1,5 @@
20.03.2024 v1.11
- XTLS-Reality steal from yourself
18.03.2024 v1.10
- MTProto Fake-TLS
17.03.2024 v1.9